在ASP.net中获取服务器端的checkboxlist选择值

时间:2016-02-17 16:08:10

标签: javascript c# jquery asp.net

我正在更新客户端上的checkboxlist值,点击另一个复选框。 当我尝试在服务器端获取选定值时按下按钮,即使在客户端检查了值,它也会返回false。 chkboxList在服务器端上是数据绑定。

以下是示例代码

ASPX页面定义:

<input type="checkbox" id="chkSelectAll" runat="server" class="col-md-2 control-label" onclick="checkedAll()" />
<label class="col-md-2 control-label">Select All </label>
<asp:CheckBoxList ID="chkboxList"  runat="server" CausesValidation="True" 
                                RepeatColumns="4" RepeatDirection="vertical" RepeatLayout="Table" ClientIDMode="Static" EnableViewState="true" >
</asp:CheckBoxList>

使用Javascript:

function checkedAll() {
    var checkedItems = true;
    var list = document.getElementById("<%=chkboxList.ClientID%>");
    var chklist = list.getElementsByTagName("input");    
    for (var i = 0; i < chklist.length; i++) {
        if (chklist[i].type == "checkbox") {
            chklist[i].checked = checkedItems;
         }
    }
}

点击按钮时的服务器端:

List<string> checkedItems = chkboxList.Items.Cast<ListItem>().Where(n => n.Selected))
         .Select(n => n.Value)
         .ToList();

即使在客户端选中了复选框,checkedItems也会返回“0”。

0 个答案:

没有答案