2012-12-06 213 views

回答

4

你的問題是非常不完整的。但我會試一試,或許它有幫助。

假設您想在Checked狀態發生更改(用戶單擊CheckBox)後立即更新,則必須首先設置AutoPostBack="true"

然後你就可以處理CheckBox.CheckedChanged事件:

protected void Check_Clicked(Object sender, EventArgs e) 
{ 
    // get the checkbox reference 
    CheckBox chk = (CheckBox)sender; 
    // get the GridViewRow reference 
    GridViewRow row = (GridViewRow) chk.NamingContainer; 
    // assuming the primary key value is stored in a hiddenfield with ID="HiddenID" 
    HiddenField hiddenID = (HiddenField) row.FindControl("HiddenID"); 

    string sql = "UPDATE dbo.Table SET [email protected] WHERE [email protected]"; 
    using (var con = new SqlConnection(connectionString)) 
    using (var updateCommand = new SqlCommand(sql, con)) 
    { 
     updateCommand.Parameters.AddWithValue("@ID", int.Parse(hiddenID.Value)); 
     // assuming the type of the column is bit(boolean) 
     updateCommand.Parameters.AddWithValue("@Status", chk.Checked); 
     con.Open(); 
     int updated = updateCommand.ExecuteNonQuery(); 
    } 
} 
1

柵源

<asp:TemplateField HeaderText="View"> 
<ItemTemplate> 
<asp:CheckBox ID="chkview" runat="server" AutoPostBack="true" OnCheckedChanged="chkview_CheckedChanged" /> 
</ItemTemplate> 
</asp:TemplateField> 

C#代碼

protected void chkview_CheckedChanged(object sender, EventArgs e) 
{ 
    // code here. 
}