【发布时间】:2010-11-03 11:35:44
【问题描述】:
嘿,我想在 ASP.NET 2 中使用嵌套存储过程。
第一个存储过程返回所有营销活动,第二个存储过程返回营销活动中的所有项目。
我已经设置了 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 传递给存储过程并不令人高兴,但这并没有在前端正确显示
有什么想法吗?
【问题讨论】: