我第一次使用复选框列表,我对如何解决处理列表中复选框的各个值的问题感到有点困惑。上面是我正在使用的列表之一的渲染,下面是ASP.NET代码,它驱动它以及我认为应该是关于使用基于数据的复选框填充此列表的正确方法在被引用的表中,作为所有这些项标记为1的位值(每个项目1列)。我已经看过'foreach'引用,但我更喜欢按项目列表名称引用进行特定调用,而不是在我有正确关联的长复选框列表上做出假设。
当然这里的问题是Items不喜欢像方法一样使用。
**** ASP.NET代码***
<%-- NetworkChklist for Networks --%>
<asp:CheckBoxList ID="NetworkChklist" runat="server" BackColor="DeepSkyBlue" Font-Size="X-Small">
<asp:ListItem> IDS / IPS</asp:ListItem>
<asp:ListItem> Network</asp:ListItem>
<asp:ListItem> Firewall</asp:ListItem>
</asp:CheckBoxList>
***失败后的代码****
NetworkChklist.Items("IDS / IPS").Value = DocumentsVal.IDS_IPS.Value;
NetworkChklist.Items("Network").Value = DocumentsVal.Network.Value;
NetworkChklist.Items("Firewall").Value = DocumentsVal.Firewall.Value;e here
任何帮助将不胜感激我有3个这些都是更大的处理我可以修改数据库,如果我需要但不愿意。
欣赏它! 肯...
答案 0 :(得分:0)
您可以使用Selected
属性来检查/取消选中每个项目。至于引用一个项目,可以通过索引来完成:
NetworkChklist.Items[0].Selected = DocumentsVal.IDS_IPS.Value;
NetworkChklist.Items[1].Selected = DocumentsVal.Network.Value;
NetworkChklist.Items[2].Selected = DocumentsVal.Firewall.Value;
或者它可以通过价值来完成。在标记中设置每个项目的Value
属性后:
<asp:CheckBoxList ID="NetworkChklist" runat="server" BackColor="DeepSkyBlue" Font-Size="X-Small">
<asp:ListItem Value="IDS_IPS" Text=" IDS / IPS" />
<asp:ListItem Value="Network" Text=" Network" />
<asp:ListItem Value="Firewall" Text=" Firewall" />
</asp:CheckBoxList>
你可以在代码隐藏中使用它:
NetworkChklist.Items.FindByValue("IDS_IPS").Selected = DocumentsVal.IDS_IPS.Value;
NetworkChklist.Items.FindByValue("Network").Selected = DocumentsVal.Network.Value;
NetworkChklist.Items.FindByValue("Firewall").Selected = DocumentsVal.Firewall.Value;
您可以使用FindByText
代替FindByValue
,但必须将
替换为牢不可破的空格(\u00A0
)。在我看来,它看起来不太好:
NetworkChklist.Items.FindByText("\u00A0Firewall").Selected = DocumentsVal.Firewall.Value;
注意:正如zgood所提到的,我假设DocumentsVal.(...).Value
是布尔值。