Эй, я хотел бы использовать Вложенные хранимые процедуры в ASP.NET 2.Использование вложенных повторителей с хранимыми процедурами
Первая хранимая процедура возвращает все Campains и второй один возвращает все элементы в кампании.
У меня есть мои 2 повторителей настроить, и теперь я пытаюсь передать параметр из родительского ретранслятора детского повторителя хранимой процедуры т.е. идентификатор кампании .... это доказывает хитрую
В коде позади я хотел попробовать
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'
Любая помощь будет принята с благодарностью
EDIT: изменил код Сзади к
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();
}
}
Но нет радости его передача правильного идентификатора кампании в хранимую процедуру, но это неверно отображается на лицевой стороне
любые идеи?
Это исправляло ошибку, а не радость .. это, похоже, не правильно привязывает данные. – StevieB
@StevieB - поскольку ваш обработчик событий не привязывает какие-либо данные к вложенному ретранслятору, я не удивлен. – Oded
@Oded ok Я попробовал SqlDataSource2.SelectParameters ["campaignId"]. DefaultValue = DataBinder.Eval (e.Item.DataItem, "campaignId"). ToString(); Повторитель s = (повторитель) e.Item.FindControl («Repeater2»); s.DataBind(); – StevieB