私は4つの列を持つGridviewを持っています。オールインItemTemplate
1つの列はCheckBoxです。このGridviewはデータソースにバインドされています。私がしたいのは、チェックボックスがチェックされてビット値 '1'のデータベースが更新され、チェックボックスのチェックを外して「0」と同じにすることです。Checkboxがチェックされている/チェックされていないときにイベントを実行するGridview C#
データベースを更新するためのSQLコードは既に知っていますが、イベントを実行して、グリッドビューのチェックボックスがオンになっている現在の行を確認する方法がわかりません。
ここにCheckBox列があります。
<asp:TemplateField HeaderText="Pick" ItemStyle-CssClass="hrGrid" HeaderStyle-CssClass="hdrHrBase">
<ItemTemplate>
<asp:CheckBox id="cbViewCustomer" runat="server" OnCheckedChanged="ViewCustomer" onAutoPostBack="true" Checked='<%#(Eval("chosen"))%>'/>
</ItemTemplate>
</asp:TemplateField>
私はこのようにEventArgsを使用していますか: これに伴う問題は、それがデータベースが、すべての行を更新しています。 私がやっているのは、Gridviewにある現在の行だけを更新することです。私はここからどこに行くべきか分かりません。
protected void ViewCustomer(object sender, EventArgs e)
{
string SelectCustomer = "UPDATE tblcustomer Set chosen ='0'";
NpgsqlCommand changedata = new NpgsqlCommand(SelectCustomer, con);
con.Open();
changedata.ExecuteNonQuery();
con.Close();
}
他に何かする必要はありますか?
これを試しましたか?それが有効な解決策です。あなたはこれを直ちにやりたいのかどうかを検討するべきですが...通常、ユーザは、ドラフトとして物を編集し、保存ボタンをクリックしたときにのみ保存することを前提としていますが、そうでないことを確認し、私はこれが人々にストレスを与えることができることが分かったので、 – Milney
これは同じ値で列全体を更新するためです。私は現在の行を更新するだけです。 – Tommy
何ですか?あなたは更新を行う他のコードを投稿する必要があります...あなたは確かにこのようなイベントハンドラで必要なことを行うことができます – Milney