【问题标题】:Check asp.net checkboxlist using Jquery使用 Jquery 检查 asp.net checkboxlist
【发布时间】:2018-08-01 03:21:48
【问题描述】:

我正在使用 [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);
                        })
                    }
                });  

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

【问题讨论】:

  • 哪部分不起作用?
  • 没有选中/选中复选框项(数据库中有数据)
  • 你调试了吗?你在res 得到什么? $("#CheckBoxListActivityUpdate") 是否返回一个元素?
  • 我修改并删除了 res 和任何其他参数。我的网络服务返回:[{"Attributes":{"Keys":[],"Count":0,"CssStyle":{"Keys":[],"Count":0,"Value":null}}, "已启用":true,"已选择":false,"Text":"Football","Value":"Football"}]
  • 我有完全相同的问题(我只是使用 asp c#):stackoverflow.com/questions/15044340/…

标签: jquery asp.net ajax checkboxlist


【解决方案1】:

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

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

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


顺便说一句,不要手动构建你的数据对象,而是创建一个合适的对象并让浏览器为你字符串化它,这样你就可以避免任何潜在的语法错误:

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

【讨论】:

  • 是的,我正在使用 '' 。所以应该写选择而不是选中? success: function (data) { $("#&lt;%=CheckBoxListActivityUpdate.ClientID%&gt;").prop('Selected', true); }
  • 当我将 row.ID 传递给 webmethod 时,它将返回一个字符串列表。例如足球和篮球。然后我想检查复选框列表中的可用项目,如果存在足球和篮球,然后检查/选择它们
  • 所以这是一个复选框的列表,而不是一个复选框?您不能像那样将整个列表设置为“true”,而且听起来您不想这样做。在这种情况下,您需要向我们展示 HTML。而且您的服务器不返回字符串,而是返回一些 JSON。我们应该查看 JSON 中的哪个属性以与复选框匹配?另外,如果返回的数据中没有checkbox的值,是不是应该取消勾选呢?您的要求有点不完整。
  • 是的,你是对的,它是一个复选框列表,它的项目是从 sql-server 填充的。我的 webmethod 现在返回这个:["Football"] 并且是的,如果该值不在返回的数据中,则应该取消选中
猜你喜欢
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
  • 2017-11-30
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多