我有AJAX代码,该代码返回HTML字符串以附加到div当前的内容中。
现在,我还希望它返回一个值来更新隐藏字段HiddenFieldSortLetter,以便可用于将来的AJAX调用。
我可以添加:
ByRef varAJAXHiddenFieldSortLetterNew As String
在参数的末尾
Public Shared Function fGetData
但是那我怎么改变
success: function (msg) { $("#<%=dvGridItems01.ClientID%>").append(msg.d); },
这样还可以更新隐藏字段HiddenFieldSortLetter?
$.ajax(
{ type: "POST",
url: "default.aspx/fGetData",
data: varData,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: "true",
cache: "false",
success: function (msg) { $("#<%=dvGridItems01.ClientID%>").append(msg.d); },
Error: function (x, e) { alert("Network error"); } });
ASP.NET 3.5 VB.NET:
<WebMethod()> _
Public Shared Function fGetData(ByVal pageIndex As Integer, _
ByVal isSearch As Integer, _
ByVal searchText As String, _
ByVal varAJAXHiddenFieldConsumerID As Object, _
ByVal varAJAXHiddenFieldSortLetter As Object _
) As String
Dim strReturn As String = ""
Dim c1 As New cVDisplayGridItems
With c1
.pConsumerID = varAJAXHiddenFieldConsumerID
.pAJAXSortLetter = varAJAXHiddenFieldSortLetter
If isSearch = 1 Then
'Search results
.pSearchTerm = searchText.Trim
.fGenerateHTMLForSearch()
Else
End If
strReturn = .pHTML
End With
Return strReturn
End Function
最佳答案
因此,对于服务器端,我创建了一个结构来保存要立即返回的两个值。我将其序列化并返回。
Public Structure dataResponse
Dim pHTML as String
Dim hidden as String
end Structure
<WebMethod()> _
Public Shared Function fGetData(ByVal pageIndex As Integer, _
ByVal isSearch As Integer, _
ByVal searchText As String, _
ByVal varAJAXHiddenFieldConsumerID As Object, _
ByVal varAJAXHiddenFieldSortLetter As Object _
) As String
Dim strReturn As String = ""
Dim c1 As New cVDisplayGridItems
With c1
.pConsumerID = varAJAXHiddenFieldConsumerID
.pAJAXSortLetter = varAJAXHiddenFieldSortLetter
If isSearch = 1 Then
'Search results
.pSearchTerm = searchText.Trim
.fGenerateHTMLForSearch()
Else
End If
strReturn = .pHTML
End With
Dim retStruct as new dataResponse()
retStruct.pHTML = strReturn
retStruct.hidden = somefunctionthatgetsthehidden()
System.Web.Script.Serialization.JavaScriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer();
Return ser.Serialize(retStruct)
End Function
然后在客户端上,我更改了成功:看起来就像...(如果将控件上的ClientIdMode设置为Static,则不必使用
success: function (msg) {
var myRes = JSON.parse(msg.d);
$("#dvGridItems01").append(myRes.pHTML);
$("#hdnTextBox").val(myRes.hidden);
},