2017-04-09 47 views
1

填充它後評估GridView控件一個CheckBox我有一個GridView中的數據域的一個是一個複選框。我讀取數據庫並填充gridview。我也有一個OnRowCommand項目。當我選擇一行時,我想獲取複選框的值並將其放在表單上。
HTML:asp.net如何從數據庫

<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}

所以 - 我怎麼才能評估一個gridview中的cckckbox我如果它被檢查或不... ...?
謝謝!

回答

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"; 
} 
+0

OOOOOO,男人!非常感謝。我花了很多時間,答案很簡單。感謝一堆!我用:my_CBX.Checked.ToString(),它工作得很好。 – gadi