使用Jquery检查asp.net checkboxlist

时间:2018-02-21 13:54:16

标签: jquery asp.net ajax checkboxlist

我正在使用[webmethod]从sql-server检索字符串列表。代码是:

[WebMethod]
public void SelectActivityCheckboxItems(int SystemID)
    {
    //Configure a connection to SystemRegister database        
        var cs = ConfigurationManager.ConnectionStrings["SYSTEMREGISTERConnectionString"].ConnectionString;
        List<string> SelectedActivity = new List<string>();
        //Get the related data for update activty checkbox 
        using (var con = new SqlConnection(cs))
        {                
            con.Open();
            var cmd = new SqlCommand("setModalSystemUpdate", con) { CommandType = CommandType.StoredProcedure };
            cmd.Parameters.AddWithValue("@SYSTEMID", SystemID);
            var dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                SelectedActivity.Add(dr[0].ToString());
            }
            con.Close();
        }
        var js = new JavaScriptSerializer();
        Context.Response.Write(js.Serialize(SelectedActivity));   
}

这是复选框列表:

 <div class="scroll">
                        <fieldset class="form-group">
                            <label class="col-sm-3">Aktivitet:</label>
                            <div>
                                <asp:CheckBoxList CssClass="paddingright" ID="CheckBoxListActivityUpdate" runat="server"
                                    DataSourceID="SqlDataSource6"
                                    DataValueField="ACTIVITYNAME"
                                    RepeatColumns="2">                                       
                                </asp:CheckBoxList>
                            </div>
                        </fieldset>
                    </div>

在我的aspx中,我有这个Jquery来“检查”列表中的项目并存在于复选框列表中。

 $.ajax({
                    type: "POST",
                    url: "SystemService.asmx/SelectActivityCheckboxItems",
                    dataType: "json",
                    data: '{Value: "' + $("#<%=rowID.ClientID%>").value + '" }',
                    contentType: "application/json",
                    success: function (data) {
                        $.each(function () {
                            $("#CheckBoxListActivityUpdate").prop('checked', true);
                        })
                    }
                });  

不幸的是,这不起作用,还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

没有输入的

$.each(function () {毫无意义。那是什么意思?它不会做任何事情,因为它没有任何东西可以循环,所以它里面的代码永远不会执行。你可以删除它。

如果复选框是$("#<%=CheckBoxListActivityUpdate.ClientID%>")服务器控件,您可能还需要使用<asp:Checkbox

当然,如果您需要实际使用响应数据,并使用它来控制是否选中该框,那么您必须自己编写,或澄清问题以确切说明应该是什么基于响应数据发生(指定数据中相关的属性并显示目标HTML)。

顺便说一句,不要手工构建数据对象,而是创建一个合适的对象并让浏览器为你进行字符串化,然后你将避免任何潜在的语法错误:

data: JSON.stringify({ "Value": $("#<%=rowID.ClientID%>").value })