[英]Checkbox list inside datalist
我在数据列表中有一个复选框列表:
<asp:DataList ID="dtlstfilter" runat="server">
<ItemTemplate>
<div style="display: none;" id='<%#changes(Eval("FilterCode")) %>' class="p7ABcontent">
<p>
<asp:CheckBoxList AutoPostBack="true" Font-Size="12px" ID="chklist" runat="server" ></asp:CheckBoxList>
</p>
</div>
</ItemTemplate>
</asp:DataList>
我在其中加载了两个列表项,分别说“是”和“否”。 如何在选中的复选框中获取活动?
您需要绑定SelectedIndexChanged事件并传递参数以获取当前rowNumber或使用自定义属性(用户定义的属性)所需的其他任何内容。
在html中
<asp:DataList ID="dtlstfilter" runat="server" >
<ItemTemplate>
<div style="display: none;" id='<%#changes(Eval("FilterCode")) %>' class="p7ABcontent">
<p>
<asp:CheckBoxList AutoPostBack="true" Font-Size="12px" ID="chklist" runat="server" onselectedindexchanged="chklist_SelectedIndexChanged" CommandName="myCommand" CommandArguments="1" DataListRowNumber="1" ></asp:CheckBoxList>
</p>
</div>
</ItemTemplate>
</asp:DataList>
在后面的代码中
protected void chklist_SelectedIndexChanged(object sender, EventArgs e)
{
CheckBoxList chklst = (CheckBoxList)sender;
string commandName = chklst.Attributes["CommandName"].ToString();
string commandArguments = chklst.Attributes["commandArguments"].ToString();
string dataListRowNumber = chklst.Attributes["DataListRowNumber"].ToString();
}
换一种方式,只需要考虑一下。 此解决方案最大程度地减少了客户端和服务器之间的往返时间。
使用按钮的单击事件。 您可以遍历DataListItems并使用FindControl方法找到CheckBoxList。 现在,您可以确定要检查的元素:
foreach (DataListItem item in dtlstfilter.Items)
{
if (item.ItemType == ListItemType.Item)
{
CheckBoxList checkBox = item.FindControl("chklist") as CheckBoxList;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.