2012-12-06 163 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. 
}