0

我有 GridView。

 <asp:GridView ID="GridView1" runat="server"  
                        AutoGenerateColumns="False">
                        <Columns>                           
                           <asp:BoundField DataField="status" HeaderText="status" ItemStyle-Width="100px" > <ItemStyle Width="100px"></ItemStyle>
                          </asp:BoundField>

                        </Columns> 
</asp:GridView>  

在代码后面

GridView1.DataSource = DataTable1;
GridView1.DataBind();

在 aspx 文件中,我想编写一些 c# 代码。例如下面的 if status == 0 then set column value等于'zero';如果 status == 1 则设置列值等于“一”;

如何改变

<asp:BoundField DataField="status" HeaderText="status" ItemStyle-Width="100px" > <ItemStyle Width="100px"></ItemStyle>
</asp:BoundField>

所以上面写的算法有效吗?谢谢!

4

1 回答 1

2

使用模板字段,例如:

<asp:TemplateField HeaderText="Status">
            <ItemTemplate>
                <%# ReturnText(Eval("Status")) %>
            </ItemTemplate>
</asp:TemplateField>

在 C# 代码隐藏中

protected string ReturnText(object val)
{
   if(val!=null)
   {

      if(val.ToString().Equals("1")) {return "one"; }
      else if(val.ToString().Equals("0")) {return "zero";}
   }
   return "";
}

另一种选择是从 SQL 查询返回文本:

SELECT STATUS, 
CASE STATUS WHEN 1 THEN 'One' WHEN 0 THEN 'Zero' END As Status_Text
FROM YourTable

然后您可以将列 status_text 绑定到 boundfield。

于 2013-02-17T14:38:16.220 回答