aspx中的C#代码填充gridview

时间:2013-02-17 14:31:42

标签: c# asp.net gridview

我有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>  

在codeBehind

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

在aspx文件中我想写一些c#代码。例如以下内容 如果status == 0则将列值设置为“0”; 如果status == 1,则将列值设置为“1”;

如何更改

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

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

1 个答案:

答案 0 :(得分:2)

使用templatefields,例如:

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

在C#codebehind

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。