首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-01-19 
如何在运行期动态改变DataGrid的绑定列的对应字段(DataField)?selectnum,field1,field2fromtable1将结果显

如何在运行期动态改变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 ") %>

热点排行