如何在gridview中将复选框更改为字符串

时间:2013-05-21 12:10:36

标签: c# gridview

我在数据表中有一个列,当从数据库中获取时,其值为True或False。 它显示在gridview中显示的复选框。但是如果值为真,我想显示“是”,如果值为假,则显示“否”。我怎么能这样做?

        DataTable dt = DBAction.ExecuteQuery(command,zzz.id);


        if (dt != null && dt.Rows.Count > 0)
        {
            // i want to change here
            gridTagHistory.DataSource =dt;
            this.ShowDialog();
        }

4 个答案:

答案 0 :(得分:2)

您可以修改您的选择查询(推荐最多)

您可以遍历DataTable / Gridview

  foreach (DataRow rw in dt.Rows)
  {
     string a = rw["YourBoolColName"].ToString();
      if(a=="True")
       {
        rw["YourBoolColName"]="Yes";
     }
    else {rw["YourBoolColName"]="No";}

  }


foreach (GridViewRow row in GridView1.Rows)
{
    Label myLabel = (Label)row.FindControl("myLabelName");
    if(myLabel.text=="True")
       {
         myLabel.text="YEs";
        }
     else if(myLabel.text=="False")
       {
        myLabel.text="No";
       }

}

答案 1 :(得分:0)

修改你的选择查询以返回字符串而不是bool值...或者在创建数据源之前修改数据集(不推荐)

答案 2 :(得分:0)

您可以从设计视图将该列更改为模板列,然后在标记中可以看到它如何呈现,在这种情况下,它将呈现为复选框。从这里您可以将显示更改为您想要的任何内容,因此您可以使用标签替换复选框并保持相同的绑定。

Here's an article that describes how to use template columns.

即使您不在这种情况下使用它,也值得一读。模板列允许在外观和与gridview的交互中更加自由和自定义。

答案 3 :(得分:0)

你可以简单地在你的sql查询中写一个case并从那里写yes或no。并将其绑定到asp:网格视图中的Boundfield。简单的解决方案,并且会更快,然后逐行迭代网格视图。