none
关于dataformatstring 的问题 RRS feed

  • 问题

  • 我在gridview中绑定数据的时候,其中有一项是性别,从数据库里面取得的数据是 数字  1015代表男, 1016代表女

     

    我怎么样在1015的时候,显示男,1016的时候显示女?  求助,谢谢大家   <asp:BoundField DataField="FGender" HeaderText="性别" DataFormatString="{1016:女;;男}" />  这样不行啊


    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年6月29日 5:47

答案

  • 你可以使用自定义模版 

    <asp:TemplateField HeaderText="性别">
                <ItemTemplate>
           
               <%#Convert.ToString(DataBinder.Eval(Container.DataItem,"FGender"))=="1016"?"女":"男" %>
              </ItemTemplate>
              </asp:TemplateField>

    努力+方法=成功
    2010年6月29日 6:40
  • 这个需要自己计算来的,请用TemplateField来绑定吧。

    <asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="false">
      <Columns>
        <asp:BoundField DataField="Name" HeaderText="名字" />
        <%--<asp:BoundField DataField="Gender" HeaderText="性别" />--%>
        <asp:TemplateField HeaderText="性别">
          <ItemTemplate><span><%# GetGenderText(Container.DataItem) %></span></ItemTemplate>
        </asp:TemplateField>
      </Columns>
    </asp:GridView>

    然后需要在后台代码里定义GetGenderText方法:

    public string GetGenderText(object dataItem)
    {
      var person = (Person)dataItem;
    
      return person.Gender == 1016 ? "女" : "男";
    }

    这样就可以啦。


    Please mark the post answered your question as the answer, and vote other helpful posts, so they will appear differently to other users for the same problem. 请将解决实际问题的帖子标记为“答案”,并给其他有帮助的帖子投票,这样其他人有同样问题的时候可以快速找到解决方案。谢谢!
    2010年6月29日 6:44
    版主

全部回复

  • 自己顶一个,高手来帮忙啊
    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年6月29日 6:16
  • 你可以使用自定义模版 

    <asp:TemplateField HeaderText="性别">
                <ItemTemplate>
           
               <%#Convert.ToString(DataBinder.Eval(Container.DataItem,"FGender"))=="1016"?"女":"男" %>
              </ItemTemplate>
              </asp:TemplateField>

    努力+方法=成功
    2010年6月29日 6:40
  • 这个需要自己计算来的,请用TemplateField来绑定吧。

    <asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="false">
      <Columns>
        <asp:BoundField DataField="Name" HeaderText="名字" />
        <%--<asp:BoundField DataField="Gender" HeaderText="性别" />--%>
        <asp:TemplateField HeaderText="性别">
          <ItemTemplate><span><%# GetGenderText(Container.DataItem) %></span></ItemTemplate>
        </asp:TemplateField>
      </Columns>
    </asp:GridView>

    然后需要在后台代码里定义GetGenderText方法:

    public string GetGenderText(object dataItem)
    {
      var person = (Person)dataItem;
    
      return person.Gender == 1016 ? "女" : "男";
    }

    这样就可以啦。


    Please mark the post answered your question as the answer, and vote other helpful posts, so they will appear differently to other users for the same problem. 请将解决实际问题的帖子标记为“答案”,并给其他有帮助的帖子投票,这样其他人有同样问题的时候可以快速找到解决方案。谢谢!
    2010年6月29日 6:44
    版主
  • 感谢两位,已经解决
    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年6月29日 12:25