根据数据表值在gridview中设置复选框

我有一个gridview控件,带有复选框字段和几个绑定字段。 复选框字段不直接映射到数据库中的字段。 相反,我想从数据库中的字段读取值并“检查”一些复选框。

例如,给出数据库中的以下数据 – > datatable

        已处理的名称日期            
             Y米老鼠11/15/2011
             N唐老鸭4/01/2012
             Y James Bond 5/02/2011

我希望gridview显示一个复选框,并将框的值设置为UNCHECKED,其中PROCESSED = N,而PROCESSED = Y则具有不可编辑的复选框或根本没有复选框。

        已处理的名称日期            
            [/]米老鼠11/15/2011
            []唐老鸭4/01/2012
            [/] James Bond 5/02/2011

要填充gridview,将对数据库运行SQL stmt,并将SQL查询的结果存储在数据表中。 在将数据表绑定到gridview之前,我想检查“已处理”字段并根据该值设置复选框。

这是gridview控件(为清晰起见缩短):

        

这是我到目前为止在代码背后的内容

  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(); 

任何帮助是极大的赞赏。

你可以这样做:

首先在sql server中:

 SELECT CAST(CASE PROCESSED WHEN 'Y' THEN 1 ELSE 0 END AS BIT) AS PROCESSED NAME DATE FROM ExampleTable 

在c#代码中:

 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); gridview_all_applicants.DataSource = dt; gridview_all_applicants.DataBind(); 

最后在aspx中:

     

如何使用数据库无关的解决方案,只是因为您使用非sqlserver数据库;)

   
   

这一个Perfectly Works.I已使用Kevin和marco Code进行了修改。 谢谢你凯文和马可