当前位置:  开发笔记 > 后端 > 正文

如何在ItemDataBound中访问数据绑定项?

如何解决《如何在ItemDataBound中访问数据绑定项?》经验,为你挑选了2个好方法。

我想在asp:repeater的ItemDataBound事件期间获取数据绑定的项目.

我尝试了以下(在stackoverflow问题中这是一个不可接受的答案):

protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    Object dataItem = e.Item.DataItem;
    ...
}

但是e.Item.DataItem没有.

如何在名为ItemDataBound的事件期间访问被绑定数据的项目.我假设事件ItemDataBound发生在一个项目是数据绑定时.

我想得到这个对象,所以我可以采取措施控制它的显示方式,此外该对象可能还有其他有用的属性,让我可以丰富它的显示方式.

回答

工具有正确的答案.答案是e.Item.Data只有在e.Item.ItemType(Item,AlternatingItem)时才有效.其他时候它无效.在我的例子中,我在标题(或页脚)行期间收到ItemDataBound事件,其中没有DataItem:

protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
   // if the data bound item is an item or alternating item (not the header etc)
   if (e.Item.ItemType != ListItemType.Item && 
         e.Item.ItemType != ListItemType.AlternatingItem)
   {
      return;
   }

   Object dataItem = e.Item.DataItem;
   ...
}

Programmin T.. 17

马上我不得不猜你需要这个:

if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
{
    //Put stuff here
}

毕竟,项目本身可能代表页眉或页脚行.



1> Programmin T..:

马上我不得不猜你需要这个:

if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
{
    //Put stuff here
}

毕竟,项目本身可能代表页眉或页脚行.



2> 小智..:

我只是想补充一点,我通过执行以下操作完成了此操作:

protected void rpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
      //determine if the row type is an Item
      if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
      {
        DataRowView row = (DataRowView)e.Item.DataItem;
        if (row["RowName"].ToString() == "value")
        {
          //INSERT CODE HERE
        }
      }
    }


这对我更有帮助,因为它有一个如何根据名称检索特定列信息的示例.
推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有