Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ItemDataBound和ObjectDataSource_C#_Asp.net_Entity Framework - Fatal编程技术网

C# ItemDataBound和ObjectDataSource

C# ItemDataBound和ObjectDataSource,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我想为嵌套中继器设置ItemDataBound事件 我为itemdataboundeventhandler编写此代码 if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item) { Tour dataitem = (Tour)(e.Item.DataItem); ObjectDataSource ObjectDataSource1 = (ObjectData

我想为嵌套中继器设置ItemDataBound事件

我为itemdataboundeventhandler编写此代码

 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();
}
这条线似乎工作正常

Tour dataitem = (Tour)(e.Item.DataItem);
我的问题从这里开始: 我有一个例外

对象引用未设置为对象的实例。

用于线路

ObjectDataSource1.SelectParameters["Id"].DefaultValue =  dataitem.TourId.ToString();
但问题就在这方面

        ObjectDataSource ObjectDataSource1 = (ObjectDataSource)e.Item.FindControl("ObjectDataSource1");
我需要知道为什么需要这条线

如果我省略了这个,它还不能正常工作,但没有错误。 因为它知道我的objectdatasource控件为什么需要它

我需要一些关于这行的解释以及如何修复异常。我还没有用试抓

我按照本文编写代码:

上面的一行应该是

Tour dataitem = (Tour)(((System.Data.DataRowView)e.Item.DataItem)).Row;
您还需要检查dataitem是否为null

if(dataitem != null)
    ObjectDataSource1.SelectParameters["Id"].DefaultValue =  dataitem.TourId.ToString();
您需要此行来获取绑定到中继器的前端代码中使用的objectdatasource的引用,以便可以设置Tour对象的TourId

ObjectDataSource ObjectDataSource1 = (ObjectDataSource)e.Item.FindControl("ObjectDataSource1");
上面的一行应该是

Tour dataitem = (Tour)(((System.Data.DataRowView)e.Item.DataItem)).Row;
您还需要检查dataitem是否为null

if(dataitem != null)
    ObjectDataSource1.SelectParameters["Id"].DefaultValue =  dataitem.TourId.ToString();
您需要此行来获取绑定到中继器的前端代码中使用的objectdatasource的引用,以便可以设置Tour对象的TourId

ObjectDataSource ObjectDataSource1 = (ObjectDataSource)e.Item.FindControl("ObjectDataSource1");
为了从嵌套中继器的ItemDataBound事件访问“ObjectDataSource1”,ObjectDataSource需要嵌套在此中继器中

未将对象引用设置为对象实例的原因。是因为调用
(ObjectDataSource)e.Item.FindControl(“ObjectDataSource1”)
时在此转发器中未找到“ObjectDataSource1”。

以便访问“ObjectDataSource1”从嵌套中继器的ItemDataBound事件中,ObjectDataSource需要嵌套在此中继器中


未将对象引用设置为对象实例的原因。是因为在调用
(ObjectDataSource)e.Item.FindControl(“ObjectDataSource1”)
时,在此转发器内未找到“ObjectDataSource1”。

是嵌套在嵌套转发器内还是外部?你能发布你的前端转发器和“ObjectDataSource1”吗code@zgood是的,这正是问题所在。我没有嵌套objectdatasource。现在我把它嵌套起来,它工作正常。如果有可能回答这个问题,那么我可以接受并投你一票。真的谢谢你。好的,我会发布一个答案来帮助其他人。ObjectDataSource1是嵌套在你的嵌套转发器内还是外部?你能发布你的前端转发器和“ObjectDataSource1”吗code@zgood是的,这正是问题所在。我没有嵌套objectdatasource。现在我把它嵌套起来,它工作正常。如果有可能回答这个问题,那么我可以接受并投你一票。真的谢谢你。好的,我会发布一个答案来帮助别人。