首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ItemDataBound和ObjectDataSource

ItemDataBound和ObjectDataSource
EN

Stack Overflow用户
提问于 2016-03-25 21:56:13
回答 2查看 198关注 0票数 0

我想为嵌套的Repeater设置一个ItemDataBound事件。

我为ItemDataBound EventHandler编写了这个代码。

代码语言:javascript
复制
 if (e.Item.ItemType == ListItemType.AlternatingItem ||
    e.Item.ItemType == ListItemType.Item)
{
 Tour dataitem = (Tour)(e.Item.DataItem);
 ObjectDataSource ObjectDataSource1 = (ObjectDataSource)e.Item.FindControl("ObjectDataSource1");

 ObjectDataSource1.SelectParameters["Id"].DefaultValue =  dataitem.TourId.ToString();
}

这一行似乎工作正常。

代码语言:javascript
复制
Tour dataitem = (Tour)(e.Item.DataItem);

我的问题从这里开始:我有一个例外

Object reference not set to an instance of an object.

换行

代码语言:javascript
复制
ObjectDataSource1.SelectParameters["Id"].DefaultValue =  dataitem.TourId.ToString();

但问题就在这条线上

代码语言:javascript
复制
        ObjectDataSource ObjectDataSource1 = (ObjectDataSource)e.Item.FindControl("ObjectDataSource1");

我要知道为什么需要这条线。

如果我省略了这一个,它的剂量还可以正常工作,但没有错误。因为它知道我的对象数据源控件为什么需要它?

我需要一些关于这一行和如何修复异常的解释。我还没有用“试接”。

我按照这篇文章对以下内容进行编码:

https://msdn.microsoft.com/en-us/library/bb510144.aspx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-26 07:40:20

为了从嵌套的Repeater的ObjectDataSource1事件中访问“ItemDataBound”,需要在这个Repeater中嵌套ObjectDataSource。

Object reference not set to an instance of an object.的原因是,当调用(ObjectDataSource)e.Item.FindControl("ObjectDataSource1")时,在这个Repeater中找不到"ObjectDataSource1“。

票数 1
EN

Stack Overflow用户

发布于 2016-03-26 03:00:02

代码语言:javascript
复制
Tour dataitem = (Tour)(e.Item.DataItem);

以上一行应是

代码语言:javascript
复制
Tour dataitem = (Tour)(((System.Data.DataRowView)e.Item.DataItem)).Row;

此外,您还需要检查数据项是否为空。

代码语言:javascript
复制
if(dataitem != null)
    ObjectDataSource1.SelectParameters["Id"].DefaultValue =  dataitem.TourId.ToString();

您需要这一行来获得对绑定到中继器的前端代码中使用的对象数据源的引用,以便您可以设置TourId对象。

代码语言:javascript
复制
ObjectDataSource ObjectDataSource1 = (ObjectDataSource)e.Item.FindControl("ObjectDataSource1");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36228688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档