嘿,我想在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