当前位置: 代码迷 >> ASP.NET >> 怎么在运行期动态改变DataGrid的绑定列的对应字段(DataField)
  详细解决方案

怎么在运行期动态改变DataGrid的绑定列的对应字段(DataField)

热度:5861   发布时间:2013-02-25 00:00:00.0
如何在运行期动态改变DataGrid的绑定列的对应字段(DataField)?
select   num,field1,field2   from   table1

将结果显示在DataGrid时,希望
当字段num的值> 1时,绑定列显示字段field1的值,否则显示field2字段的值.


如何实现?

谢谢!

------解决方案--------------------------------------------------------
在这个事件里写 ItemDataBound

int 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} ");
}
能个自定义列,把数据负值.
------解决方案--------------------------------------------------------
<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>
------解决方案--------------------------------------------------------
使用SQL语句来解决更简单。

select num,
'myfiled '= case when num> 1 field1 else field2 end
from table1
------解决方案--------------------------------------------------------
sorry,

> > >

<%# (int)DataBinder.Eval(Container.DataItem, "num ") > 1 ? DataBinder.Eval(Container.DataItem, "field1 ") : DataBinder.Eval(Container.DataItem, "field2 ") %>
  相关解决方案