asp.net如何在从数据库

时间:2017-04-09 18:17:32

标签: c# asp.net gridview checkbox evaluate

我有一个gridview,其中一个数据字段是一个复选框。我读了数据库并填充了gridview。我还有一个OnRowCommand项目。当我选择一行时,我想获取复选框的值并将其放在表格上的标签上 HTML:

<asp:GridView ID="grv_Contacts" runat="server"
     DataKeyNames="Cntc_Id" AutoGenerateColumns="False"
     CssClass="myGrid" OnRowCommand="grv_Contacts_RowCommand">
     <Columns>
         <asp:CommandField SelectText="SEL"
             ShowSelectButton="True" ControlStyle-CssClass="btn btn-warning myBtn-xs">
             <ControlStyle Font-Bold="True" ForeColor="Blue" Width="40px" />
         </asp:CommandField>
         <asp:BoundField DataField="Cntc_Id" HeaderStyle-CssClass="myHidden" ItemStyle-CssClass="myHidden">
         </asp:BoundField>
         <asp:BoundField DataField="Cntc_Name" HeaderText="Name" SortExpression="Cntc_Name">
             <HeaderStyle Width="180px" />
             <ItemStyle CssClass="myGridItemMaxWidth" HorizontalAlign="Right" Wrap="false" />
         </asp:BoundField>
         <asp:CheckBoxField DataField="Cntc_Allowed_To_Edit" HeaderText="?Allowed" SortExpression="Cntc_Allowed_To_Edit" />
    </Columns>
    <HeaderStyle CssClass="my_Grid_Header" />
    <SelectedRowStyle BackColor="#669999" ForeColor="White" Font-Bold="True" />
</asp:GridView>  

代码背后:

protected void grv_Contacts_RowCommand(object sender, GridViewCommandEventArgs e)
{
   int my_Grv_Row_Index = Convert.ToInt32(e.CommandArgument);
   CheckBox my_CBX = (CheckBox)(grv_Contacts.Rows[my_Grv_Row_Index].Cells[3].Controls[0]);
   lbl_Message.Text = my_CBX.Text;
}  

我在lbl_Message.Text中一直是NULL 我在 my_CBX 上调试并添加了一只手表,它显示了它的颜色 值为:{Text = "" Checked = true}

那么 - 如果选中或不检查网格视图中的ckeckbox,我该如何评估...? 谢谢!

1 个答案:

答案 0 :(得分:1)

由于您使用CheckBoxField,因此GridView仅显示一个复选框,作为数据库中bit列的直观表示。因此默认情况下它没有Text。 您可以在复选框中添加默认的Text属性。

<asp:CheckBoxField Text="?Allowed" HeaderText="?Allowed"

现在,如果您使用lbl_Message.Text = my_CBX.Text;,它将显示Text属性的值。

但是,如果您想查看是否选中了复选框,请使用Checked

lbl_Message.Text = my_CBX.Checked.ToString();
//or
if (my_CBX.Checked == true)
{
    lbl_Message.Text = "Checkbox is checked";
}