0

嗨 iam 在 asp.net 中使用 Jquery 使用 Cascading Dropdown

我的 webMethod 被调用,我得到结果但值没有被绑定。

这是我的代码

    if ($(".ddlService").val() != "") {
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "Port.aspx/VCode_Get",
                    data: "{ServiceID:'" + $(".ddlService").val() + "'}",
                    dataType: "html",
                    success: function (html) {
                        try {                           
                            Success(html);
                        } catch (ex) {
                            alert("ErrCode:7");
                        }
                    },
                    error: function (msg) {
                        alert("ErrCode:8");
                    }
                })
                return false;
            }
            else {
                    $(".ddlVoyage").empty();
                    $(".ddlVoyage").append("<option value=''>Select </option>");
                }
        });
    });

    function Success(result) {
       alert("SUccess Called");
       $(".ddlVoyage").empty();
       $(".ddlVoyage").append("<option  value=''>Select </option>");

       $.each(data, function (index, result) {
           $(".ddlVoyage").append("<option value='" + result.VoyageMasterID + "'>" + result.VoyageCode + "</option>");

        });          
    }

我收到警报

alert("调用成功");

ALso to the targent Dropdown iam getting value Select bind to it, but values are not getting bind

我的数据库中也有值..,

我认为需要在 iam 打击的这两条线上进行更改

  $.each(data, function (index, result) {
           $(".ddlVoyage").append("<option value='" + result.VoyageMasterID + "'>" + result.VoyageCode + "</option>");

我不知道如何将这些值绑定到 Select ,我在这里感到震惊,任何人都可以帮忙。

4

2 回答 2

0

我认为您以错误的方式绑定 html..

 ..<option value='" + result.VoyageMasterID + "'>"...
                  //--^^^^^^^^^^^^^^^^---here looks like you have a response as JSON..

尝试这个

 $.ajax({
        type: "POST",
        ...
        dataType: "json",  //here get response as json
        .....  
       });   

并确保您在控制器中将响应作为 JSON 发送(我认为您已经这样做了).. 将 dataType 更改为 JSON 应该可以工作..

更新

你的 json

 { "Table": [ { "VoyageMasterID": 3, "VoyageCode": "9101" }, { "VoyageMasterID": 3, "VoyageCode": "9101" }]}            

尝试这个

function Success(result) {
   alert("SUccess Called");
   $(".ddlVoyage").empty();
   $(".ddlVoyage").append("<option  value=''>Select </option>");

   $.each(result.Table, function (index, value) {
       $(".ddlVoyage").append("<option value='" + value.VoyageMasterID + "'>" + value.VoyageCode + "</option>");

    });          
 }

因为您的 json 在对象数组中.. 您必须遍历 result.Table(您的对象的名称是表)并获取其对应的 voyagemasterid 和 voyagecode

于 2013-04-25T04:51:15.593 回答
0

尝试这个

$(".ddlVoyage").append("<option value='" + value.Value + "'>" + value.Text + "</option>");

这就是我使用它的方式

 $('#offices').change(function () {
            $.ajax({
                url: '@Url.Action("FillDepartments", "Contact")',
                type: 'POST',
                cache: false,
                data: { id: $(this).val() },
                dataType: 'json',
                success: function (departments) {
                    $.each(departments, function (i, departments) {
                        $("#departments").append('<option value=' + departments.Value + '>' + departments.Text + '</option>')
                    });
                },

                error: function (error) {
                    alert(errorss);
                }
            });
        });
于 2015-10-09T07:36:52.817 回答