GridView セルに CheckBox があります。チェックを外したときのように、チェックボックスの変更時にデータベースを更新したい、テーブルの「ステータス」列がfalseとして更新される、またはその逆。
質問する
7444 次
2 に答える
7
あなたの質問は非常に不完全です。しかし、私はそれを試してみます。とにかく役立つかもしれません。
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 Status=@Status WHERE idColumn=@ID";
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();
}
}
于 2012-12-06T12:47:37.103 に答える
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.
}
于 2012-12-06T12:53:21.290 に答える