select num,field1,field2 from table1将结果显示在DataGrid时,希望
当字段num的值>1时,绑定列显示字段field1的值,否则显示field2字段的值.
如何实现?谢谢!

解决方案 »

  1.   

    在这个事件里写 ItemDataBoundint i=(int)DataBinder.Eval(e.Item.DataItem, "num", "{0:d}");
      if(i>1)
      {
        (string)DataBinder.Eval(e.Item.DataItem, "field1", "{0:d}");  }
      else
      {
       (string)DataBinder.Eval(e.Item.DataItem, "field2", "{0:d}");
      }
    能个自定义列,把数据负值.
      

  2.   

    <asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
    <Columns>
    <asp:TemplateColumn HeaderText="au_id">
    <ItemTemplate>
    <%# Convert.ToInt32(DataBinder.Eval(Container.DataItem, "num") ) > 1 ? DataBinder.Eval(Container.DataItem, "field1")  : DataBinder.Eval(Container.DataItem, "field2") %>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid>
      

  3.   

    以上2位都有道理,具体看你是怎么设置DATAGRID的
    很简单的问题
      

  4.   

    使用SQL语句来解决更简单。select num,
    'myfiled'= case when num>1 field1 else field2 end
    from table1
      

  5.   

    还是模板舒服不过SQL语句也相当不错
      

  6.   

    常规且合理的方案是模板中动态绑定-><asp:DataGrid ...
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <%# (int)DataBinder.Eval(Container.DataItem, "num") ) > 1 ? DataBinder.Eval(Container.DataItem, "field1") : DataBinder.Eval(Container.DataItem, "field2") %>
      

  7.   

    sorry, >>><%# (int)DataBinder.Eval(Container.DataItem, "num") > 1 ? DataBinder.Eval(Container.DataItem, "field1") : DataBinder.Eval(Container.DataItem, "field2") %>