У меня есть элемент управления gridview с полем флажка и несколькими связанными полями.Поле флажка не отображается непосредственно на поле в базе данных.Скорее, я хочу прочитать значение из поля в базе данных и «проверить» некоторые из флажков.
Например, учитывая следующие данные из базы данных -> datatable
PROCESSED NAME DATE
Y Mickey Mouse 11/15/2011
N Donald Duck 4/01/2012
Y James Bond 5/02/2011
Я бы хотел, чтобы в gridview отображался флажок и устанавливалось значение для полей UNCHECKED, где у PROCESSED = N и для PROCESSED = Y либо есть не редактируемый флажок, либо нет флажка вообще.gridview, SQL stmt запускается для базы данных, а результат SQL-запроса сохраняется в базе данных.Прежде чем связывать данные с видом сетки, я хотел бы проверить поле «обработано» и установить флажок на основе этого значения.
Вот элемент управления сеткой (сокращен для ясности):
<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();
. Любая помощь очень ценится.