2013-03-28 77 views
1

我正在创建一个CheckBoxList,并且我动态地填充它。 我穿过代码,它似乎没有击中以下方法,我认为所选值属性的值始终为false。如何获取checkBox列表的值?

<form id="form1" action="web_page.aspx"> 
    <asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="True" 
      onselectedindexchanged="CheckBoxList1_SelectedIndexChanged" > 
    </asp:CheckBoxList> 
    <br /> 
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="submit"/> 
</form> 
<div id="p" runat="server"></div> 

protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    this.p.InnerHtml = "hello"; 
} 
+0

形式必须'RUNAT =“服务器”' – 2013-03-28 13:00:24

+0

也张贴您是如何创建的项目 – jason 2013-03-28 13:03:55

回答

-1

您应该能够发送转换为复选框列表,然后遍历项目:

Protected Sub test(ByVal sender As Object, ByVal e As EventArgs) Handles check1.SelectedIndexChanged 
    Dim myCb As New CheckBoxList 
    myCb = Me.check1 

    For Each c As ListItem In myCb.Items 
     Dim isChecked, value, text As String 
     isChecked = c.Selected 
     If (isChecked = True) Then 
      value = c.Value 
      text = c.Text 
     End If 
    Next 
End Sub 
+0

请你测试你的代码? – user2211482 2013-03-28 12:09:17

+0

您不能将发件人转换为“CheckBox”,而是转至“CheckBoxList”。如果要显示每个选定项目,[CheckBoxList]的Text属性将获得列表 – 2013-03-28 12:21:56

+0

中索引最低的所选项目的文本[this](http://stackoverflow.com/a/8913545/) 1574689)答案可以帮助你 – 2013-03-28 12:48:34

0

的问题可能是你在page_load事件绑定。

尝试绑定它page load但里面!Page.IsPostBack

if(!Page.IsPostBack) 
{ 
    //bind here. 
}