Я использую этот код:
$("#dropdownPaper").change(function () {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "NomexLine500A.aspx/CalcBlockCode",
data: "{}",
dataType: "json",
success: function (data) {
$("#textBlockCode").text(data.d)
},
error: function (result) { }
});
});
для ответа на изменение выпадающего списка для запуска функции в файле codebehind для страницы aspx.
Вот функция в коде:
Protected Function CalcBlockCode() As String
Dim strReturn As String
Dim paper As New DropDownList
Dim cylinder As New DropDownList
'Dim blockcode As New TextBox
paper = FormView1.FindControl("dropdownPaperItem")
cylinder = FormView1.FindControl("dropdownCylinderNumber")
'blockcode = CType(FormView1.FindControl("textBlockCode"), TextBox)
If paper.Text = "" Or paper.Text = "None" Then
CalcBlockCode = "NA"
Exit Function
End If
If cylinder.Text = "" Or cylinder.Text = "None" Then
CalcBlockCode = "NA"
Exit Function
End If
Dim strCellSizeCode As String
Dim intMil As Decimal
Dim strCylinderID As String
strCellSizeCode = DLookup("CellSizeCode", "Cylinders", "CYLINDERS = '" & cylinder.Text & "'")
intMil = DLookup("Mil", "PaperPart", "ITEM_NBR = '" & paper.Text & "'")
strCylinderID = DLookup("CylinderID", "Cylinders", "CYLINDERS = '" & cylinder.Text & "'")
strReturn = Convert.ToInt32(intMil * 10) & strCellSizeCode & strCylinderID
CalcBlockCode = strReturn
End Function
В веб-инструментах Firefox я не вижу никаких доказательств того, что функция jquery запущена. Если он запускается, я не получаю возвращаемое значение. Я ссылаюсь на правильный url для вызова ajax, чтобы получить функцию из кода?
В вашем коде сначала:
Imports System.Web.Services
затем поместите это поверх своей функции и сделайте свою функцию общедоступной
<WebMethod()> _
Public Shared Function CalcBlockCode() As String
'....
End Function
ОБНОВИТЬ
Согласно комментарию @JsonP к вашему ответу, вам нужно передать свои значения в ajax-вызов как:
$.ajax({
//...
data: {'paper': $('yourdropdown').val(), 'cylinder':$('yourotherdropdown')} // notice the removal of quotes from around {} as per the comment from @Archer
//...
})
Return
вместо присвоения неявной переменной функции и написанияExit Function
. И нет никаких причин, чтобы дажеstrReturn
...public static
и иметь атрибутWebMethod
. Я предполагаю, что ваш код нуждается в эквиваленте. Кроме того, поскольку метод должен бытьstatic
, я думаю, что вам нужно передавать соответствующие значения с помощью вызова ajax вместо доступа к элементам управления из метода.