Problem about DataGrid - DataBinder.Eval

   I am using a Datagrid and am populating the column header which is being picked up from a database,the Datagrid also contains some template column,you know,i must use DataBinder.Eval(Container.DataItem,'column name') to bind the datasource.

   My problem is that if the 'column name' contains a '.' within(eg:urn:schemas.microsoft.com:fulltextqueryinfo:displaytitle) then it throws an error as follows:

   DataBinder.Eval: 'System.Data.DataRowView' does not contain a property with the name 'column name'.

   I'm not sure if it is a bug of Datagird,but the error exists indeed,you can try it:)

   But  when i change to use DataBinder.GetPropertyValue(Container.DataItem, 'column name') method,everything goes well.

   And the another way is write a custom function,then you can call it from the template column.here is the code sample:

   public string ChangeValue(object dataItem,string columnName)
   {
         return ((DataRowView)dataItem)[columnName].ToString();
   }

   I hope this helps.

转载于:https://www.cnblogs.com/fengzhimei/archive/2003/12/28/37689.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值