1

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

以上所有工作都很好,我能够成功获得预期的 json 字符串。

我现在想做的是根据该 json 数据填充 Child 复选框列表。最好,我也希望能够设置文本和值(复选框列表的 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?
            }
        });
    }

谢谢!

4

2 回答 2

1

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

于 2011-04-08T16:03:42.310 回答
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');
于 2011-04-08T16:14:06.230 回答