asp.Net Checkbox没有价值?

时间:2011-09-21 02:25:14

标签: c# asp.net

已解决:如何从数据列表中的复选框获取VALUE?复选框没有值。

<asp:DataList
     ID='dlTest'
     runat='server'
     RepeatColumns='2'>

     <ItemTemplate>
         <asp:HiddenField ID='cbTestID' runat='server' value='<%# Eval("id") %>' />
         <asp:CheckBox ID='cbTest' runat='server' /> <%# Eval("name") %><br />
     </ItemTemplate>

// CODE BEHIND

foreach (DataListItem cb in dlTest.Items) {
    CheckBox chk = (CheckBox)cb.FindControl("cbTest");
    HiddenField hf = (HiddenField)cb.FindControl("cbTestID");
    if(chk.Checked)
    {
        Response.Write(hf.Value);
    }

2 个答案:

答案 0 :(得分:2)

您没有复选框的值,因为它只是一个项目,这意味着它可以是True或False,您可以像这样检查它,

      if(myCheckBox.Selected)
      { do this.. or even fire an event when it changed. 
         or assign some number to some datatype.. }

另一方面,CheckBoxList确实具有与您可以获得的任何其他列表一样的值

      CheckBoxList1.SelectedValue

或者您可以使用checkboxlist

执行以下两项操作
                   CheckBoxList1.SelectedIndex
                   CheckBoxList1.SelectedItem

答案 1 :(得分:0)

尝试使用Text CheckBox属性/属性而不是Value。

<asp:CheckBox ID="cbTest" runat="server" Text="Text from Checkbox"/>

protected void Button1_Click(object sender, EventArgs e)
{
    Label1.Text = cbTest.Text;
}

查看实际操作:demo

请参阅此article以获取CheckBoxList(使用Text属性/属性)实现。

或者,如果您确实想使用CheckBox的Value属性,请选中article

HTH。