вызов jquery для функции vb.net и использование ответа для заполнения текстового поля

0

Я использую этот код:

$("#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, чтобы получить функцию из кода?

  • 1
    Пожалуйста, используйте Return вместо присвоения неявной переменной функции и написания Exit Function . И нет никаких причин, чтобы даже strReturn ...
  • 0
    В c # метод, который вы хотите вызвать, должен быть public static и иметь атрибут WebMethod . Я предполагаю, что ваш код нуждается в эквиваленте. Кроме того, поскольку метод должен быть static , я думаю, что вам нужно передавать соответствующие значения с помощью вызова ajax вместо доступа к элементам управления из метода.
Показать ещё 2 комментария
Теги:

1 ответ

1

В вашем коде сначала:

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
//...
})

Ещё вопросы

Сообщество Overcoder
Наверх
Меню