我正在更新客户端上的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”。