1
我在GridView單元格中有一個複選框。我想更新複選框上的數據庫,比如當我取消選中它時,表中的'狀態'列更新爲false,反之亦然。更新數據庫在gridview asp.net中的複選框更改c#
我在GridView單元格中有一個複選框。我想更新複選框上的數據庫,比如當我取消選中它時,表中的'狀態'列更新爲false,反之亦然。更新數據庫在gridview asp.net中的複選框更改c#
你的問題是非常不完整的。但我會試一試,或許它有幫助。
假設您想在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();
}
}
柵源
<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.
}