私は、チェックボックスフィールドといくつかのバインドされたフィールドを持つgridviewコントロールを持っています。チェックボックスフィールドは、データベースのフィールドに直接マップされません。むしろ、私はデータベースのフィールドから値を読み込み、チェックボックスのいくつかをチェックしたいと思っています。データベースから以下のデータ所与例えばデータテーブルの値に基づいてgridviewのチェックボックスを設定する
、 - >データテーブル
PROCESSED NAME DATE Y Mickey Mouse 11/15/2011 N Donald Duck 4/01/2012 Y James Bond 5/02/2011
Iチェックボックスを表示し、処理= N UNCHECKEDにして処理= Yのボックスの値を設定するためのGridViewを希望編集不可能なチェックボックスを持つか、チェックボックスを選択しないでください。
PROCESSED NAME DATE [/] Mickey Mouse 11/15/2011 [ ] Donald Duck 4/01/2012 [/] James Bond 5/02/2011
のGridViewを移入するには、SQLのSTMTは、データベースに対して実行され、SQLクエリの結果は、データテーブルに格納されます。データテーブルをgridviewにバインドする前に、 "処理済み"フィールドをチェックし、その値に基づいてチェックボックスを設定したいと思います。ここで
は、(明確にするために短縮)、GridViewコントロールである:ここでは
<asp:GridView ID="gridview_all_applicants" runat="server" AllowPaging="True">
<Columns>
<asp:TemplateField HeaderText="Complete">
<ItemTemplate>
<asp:CheckBox ID="process_flag" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="lastname" HeaderText="Last Name" ReadOnly="True" SortExpression="lastname" />
は私が
SqlCommand cmd = new SqlCommand(sql query here);
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
da.SelectCommand = cmd;
// Save results of select statement into a datatable
da.Fill(dt);
foreach (DataRow r in dt.Rows)
{
// do some processing of data returned from query
// read the char value from the returned data and set checkbox
procflag = r["process_flag"].ToString().ToLower();
CheckBox chkbox = new CheckBox();
if (procflag == null || procflag == "n")
{
// SET CHECKBOX TO "NOT CHECKED"
}
else
{
// SET CHECKBOX TO "CHECKED" AND MAKE IT UNCLICKABLE
// ----OR---- DO NOT DISPLAY CHECKBOX AT ALL.
}
} // end for each
gridview_all_applicants.DataSource = dt;
gridview_all_applicants.DataBind();
の背後にあるコードでは、これまで持っているものである任意のヘルプは大歓迎です。
Marco - あなたの友達は絶対的なGENIUSです!どのようなエレガントなソリューション....完璧に動作します.....ありがとうございます! – itrickski