如何通过jQuery填充asp.net CheckBoxList控件

时间:2011-04-08 15:51:06

标签: jquery asp.net json data-binding checkboxlist

我在页面上有两个复选框列表 - 父级和子级。两者都是分开的可折叠的div。当Parent的div崩溃时,我使用jquery来调用对数据库执行查询的WebMethod,将返回的List序列化为json,并将其返回给jquery方法。

以上一切都运行良好,我能够成功获得预期的json字符串。

我现在要做的是根据json数据填充子复选框列表。我希望能够设置文本和值(复选框列表的DataTextField和DateValueField属性)。

任何人都可以提供如何执行此操作的示例吗?

   function RunCentralEffect() {
        $("#ParentDiv").hide('blind', 200);
        var names = [];
        $('#ParentDiv input:checked').each(function () {
            names.push(this.value);
        });
        $.ajax({
            type: "POST",
            url: "BranchReportForm.aspx/MyWebMethod",
            data: "{'args': '" + names + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                alert('Success!');
                //Now what?
            }
        });
    }

谢谢!

2 个答案:

答案 0 :(得分:1)

当您谈论ChecbkboxList控件,DataValueField和DataTextField属性时,您指的是您的jQuery方法将不知道的ASP.NET抽象,因为这些在您的代码隐藏中处理,生成发送到浏览器的HTML。
您将要做的是直接操作DOM元素。在不了解您的代码生成的实际html布局的情况下,提供更多答案是很棘手的,但是在高级别,您需要循环返回返回的json对象并在适当的位置附加一个新的复选框和标签。格。

答案 1 :(得分:0)

您的javascript代码不知道DataValueField或DataTextField是什么。

请记住,。Net将控件呈现为HTML,因此它可能看起来像这样:

<input type="checkbox" name="vehicle" value="Infiniti" /> Infiniti
<input type="checkbox" name="vehicle" value="Pontiac" /> Pontiac 

设置是否选中它们:

$('input[name=vehicle]').attr('checked', true);
$('input[name=vehicle]').attr('checked', false);

要设置值,我认为您可以使用.val();

$('input[name=vehicle]').val('BMW');