嘿,我想在ASP.NET 2.使用嵌套的存储过程使用嵌套中继器使用存储过程
的第一个存储过程返回所有Campains和第二个返回该活动的所有项目。
我有我的2个中继器设置,现在我想从父转发到子中继器存储过程即活动ID参数传递....这证明棘手
在后面的代码,我想尝试
public void Repeater1_ItemDataBound(Object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.EditItem)
{
SqlDataSource2.SelectParameters["campaignId"].DefaultValue =
DataBinder.Eval(e.Item.DataItem, "campaignId").ToString();
}
}
但我不知道如何调用此方法或得到它,如果我尝试这个
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" OnDataBinding="Repeater1_ItemDataBound">
我得到错误加载
CS0123:没有重载 'Repeater1_ItemDataBound' 匹配委托 'System.EventHandler'
任何帮助,将不胜感激
编辑:改变了我的代码背后
public void Repeater1_ItemDataBound(Object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.EditItem)
{
Response.Write(DataBinder.Eval(e.Item.DataItem, "campaignId").ToString());
SqlDataSource2.SelectParameters["campaignId"].DefaultValue =
DataBinder.Eval(e.Item.DataItem, "campaignId").ToString();
SqlDataSource2.SelectParameters["statusId"].DefaultValue =
"1";
}
foreach (RepeaterItem repeaterItem in Repeater1.Items)
{
((Repeater)(repeaterItem.FindControl("Repeater2"))).DataBind();
}
}
,但没有喜悦它传递正确的广告系列ID到存储过程,但这不是正确显示在前端
任何想法?
修复错误好吧没有喜悦......它似乎没有正确绑定数据。 – StevieB 2010-11-03 11:56:26
@StevieB - 由于您的事件处理程序没有将任何数据绑定到嵌套的Repeater,因此我并不感到惊讶。 – Oded 2010-11-03 11:58:13
@Oded ok我试过SqlDataSource2.SelectParameters [“campaignId”]。DefaultValue = DataBinder.Eval(e.Item.DataItem,“campaignId”)。ToString(); Repeater s =(Repeater)e.Item.FindControl(“Repeater2”); s.DataBind(); – StevieB 2010-11-03 12:06:37