我用DataGrid显示数据,但如果不想原原本本显示出来,例如字段传为“1”则显示“男”,字段值为“2”显示“女”,应该怎么实现?

解决方案 »

  1.   

    可以加个附表,比如为XingBie,里面有两个字段,ID,XingBie,一个存放1,男;另外一条存放2,女,这样,在进行数据对控件进行绑定时,选择这个为XingBie的字段,再利用SQL语句的条件查询即可,
    比如,
    select 字段1,字段2,...,XingBie from 表1,XingBie where 表1.ID = XingBie.ID;即可
      

  2.   

    我以前都是这样做的  For i = 0 To dt.Rows.Count - 1
         dt.Rows(i).BeginEdit()      '更改性别显示
           Select Case dt.Rows(i).Item("XB")
              Case "1"
                 dt.Rows(i).Item("XB") = "男"
              Case "2"
                 dt.Rows(i).Item("XB") = "女"
           End Select       dt.Rows(i).EndEdit()
        Next    Me.DataGrid1.DataSource = dt
        Me.DataGrid1.DataBind()
      

  3.   

    你看看这个:<asp:datagrid id="dgdInfoConnect" runat="server" Width="216px" DataKeyField="ID" ShowHeader="False"
    PageSize="9" GridLines="Horizontal" CellPadding="3" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#E7E7FF" AutoGenerateColumns="False">
    <FooterStyle ForeColor="#00CC33" BackColor="#33CC66"></FooterStyle>
    <SelectedItemStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#738A9C"></SelectedItemStyle>
    <AlternatingItemStyle BackColor="#F7F7F7"></AlternatingItemStyle>
    <ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
    <Columns>
    <asp:TemplateColumn HeaderText="信源编号">
    <HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center" Width="300px"></ItemStyle>
    <HeaderTemplate>
    <FONT face="宋体"></FONT>
    </HeaderTemplate>
    <ItemTemplate>
    <asp:HyperLink id=AccessoryLink CssClass="contentlink" NavigateUrl='<%# FormatUrl((DataBinder.Eval(Container.DataItem,"ConnectID")).ToString()) %>' Runat="server">
    <%# DataBinder.Eval(Container.DataItem,"ConnectID") %>
    </asp:HyperLink>
    </ItemTemplate>
    <EditItemTemplate>
    <FONT face="宋体"></FONT>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:ButtonColumn Text="删除" ButtonType="PushButton" DataTextField="ID" CommandName="Delete" DataTextFormatString="删除"></asp:ButtonColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Right" ForeColor="#4A3C8C" BackColor="#E7E7FF" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>
      

  4.   

    重点看看是怎么梆定的
    <ItemTemplate>
    <asp:HyperLink id=AccessoryLink CssClass="contentlink" NavigateUrl='<%# FormatUrl((DataBinder.Eval(Container.DataItem,"ConnectID")).ToString()) %>' Runat="server">
    <%# DataBinder.Eval(Container.DataItem,"ConnectID") %>
    </asp:HyperLink>
    </ItemTemplate>
      

  5.   

    你在SQL语句里用 CASE 就可以搞定
    SELECT
       CASE sex
          WHEN '1' THEN '男'
          
          ELSE '女'
       END AS sex
     
    from 
           table
      

  6.   

    表名为man,表结构如下name,sex
    SQL语句为:
    SELECT name, REPLACE(sex, '1', '男') AS 性别
    FROM man
    WHERE sex = '1'
    UNION
    SELECT name, replace(sex, '2', '女') AS 性别
    FROM man
    WHERE sex = '2'
      

  7.   

    flashasp(flashasp) 的方法很好!
      

  8.   

    可以通过sql语句来实现,也可以通过在itemdatabound事件里面写代码来动态添加代码
      

  9.   

    界面梆定:
    <ItemTemplate>
    <asp:HyperLink id=AccessoryLink CssClass="contentlink" Runat="server">
    <%# Format(DataBinder.Eval(Container.DataItem,"Sex")) %>
    </asp:HyperLink>
    </ItemTemplate>
    代码分离:
    public string Format(string Sex)
    {
       string S = "";
       switch(Sex)
       {
          case "1":
               S = "男";
               break;
          case "2":
               S = "女";
               break;
       }
       return S;
    }
      

  10.   

    这样不是很方便吗
    DataGrid中建一个模板列,然后把你要显示的数据绑定就行了,这是我的代码:<asp:TemplateColumn HeaderText="性别">
    <ItemTemplate>
    <FONT face="宋体">
    <%# Convert.ToInt32(DataBinder.Eval(Container.DataItem,"Sex"))==1?"男":"女" %>
    </FONT>
    </ItemTemplate>
    </asp:TemplateColumn>我的就是这样的,
      

  11.   

    在dataset里处理 或者
    在itemdatabound事件里过滤一下 或者
    把ItemTemplet里的控件设为dropdownlist,不过这个dropdownlist要初始化,整个过程也会比较繁琐,不过使用还是很方便的
    NetAdvantage的Grid控件就带有这个功能,你可以参考一下,最好做成一个控件。<%#.... %>的形式尽量少用,反射会有效率影响。