本文介绍了在的ItemDataBound中继器嵌套的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个嵌套Repeater在我的网页表单,我把两个ObjectDataSource的每个中继器。
我有这种方法在我repositiry:
公开的IQueryable< TourDate> GetById(INT标识)
{
返回model.TourDates.Where(E => e.TourId == ID);
}
我需要设置ItemDataBound事件。
在我写这篇code为ItemDataBound事件:
保护无效RptTourDetail_ItemDataBound(对象发件人,RepeaterItemEventArgs E)
{
如果(e.Item.ItemType == || ListItemType.AlternatingItem
e.Item.ItemType == ListItemType.Item)
{
VAR的DataItem = e.Item.DataItem;
ObjectDataSource控件ObjectDataSource1 =(ObjectDataSource控件)e.Item.FindControl(ObjectDataSource1);
ObjectDataSource1.SelectParameters [TourId] =默认值dataItem.TourId。
}
}
但它dosent承认TourId最后line.I觉得有什么错的是没有这种
VAR的DataItem = e.Item.DataItem;
没有任何人有任何想法什么问题呢?
如果需要一些解释有关projcet:
这里是我的模型
和HTML:
< ASP:ObjectDataSource控件ID =ODSTTitle=服务器SelectMethod =GetById的TypeName =ATourRep>
< SelectParameters>
< ASP:QueryStringParameter默认值=0NAME =IDQueryStringField =CIDTYPE =的Int32/>
< / SelectParameters>
< / ASP:ObjectDataSource控件>< ASP:ObjectDataSource控件ID =ObjectDataSource1=服务器SelectMethod =GetById的TypeName =ATourDateRep>
< SelectParameters>
< ASP:参数名称=ID类型=的Int32/>
< / SelectParameters>
< / ASP:ObjectDataSource控件>< DIV CLASS =容器ID =TourDetail> < ASP:直放站ID =RptTourDetail=服务器的DataSourceID =ODSTTitle的ItemType =游的EnableViewState =假OnItemDataBound =RptTourDetail_ItemDataBound>
<&HeaderTemplate中GT; < UL>
< / HeaderTemplate中>
<&ItemTemplate中GT;
<立GT;
&所述; IMG SRC =&下;%#Item.TImgUrl%gt;中ALT =替代文本级=IMG响应/>
< DIV CLASS =行>
< DIV CLASS =COL-MD-3>
<% - NestedRepeater - %GT;
&所述p为H.; <%#Item.TourId%GT; &所述; / P>
< ASP:直放站的ItemType =TourDateID =RptTourNested=服务器的EnableViewState =假的DataSourceID =ObjectDataSource1>
<&ItemTemplate中GT;
< H2> <%#Item.TourStartDate%GT;
< / H>
< / ItemTemplate中>
< / ASP:直放站>
< / DIV>
< DIV CLASS =COL-MD-6>
<% - 此列正常工作 - %GT;
< H4>
<%#Item.TName%GT;
< / H4>
&所述p为H.;
<%#Item.TDes%GT;
&所述; / P>
< / DIV>
< DIV CLASS =COL-MD-3> C< / DIV>
< / DIV> < /李> < / ItemTemplate中> < FooterTemplate>
< / UL>
< / FooterTemplate>
< / ASP:直放站> < / DIV>
解决方案
ObjectDataSource ObjectDataSource1 = (ObjectDataSource)e.Item.FindControl("ObjectDataSource1");
ObjectDataSource1.SelectParameters["TourId"].DefaultValue = dataItem.TourId;
ObjectDataSource objTourDataSource= (ObjectDataSource)e.Item.FindControl("ObjectDataSource1");
objTourDataSource.SelectParameters["TourId"].DefaultValue = dataItem.TourId;
这篇关于在的ItemDataBound中继器嵌套的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!