Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

miksh


Молчун

Зарегистрирован:
23 February 2005
Сообщения: 38
Примеры кода: 1
 

RE: Событие из вложенных репиторов

08 June 2005 00:59  


Студия - вот код (реально все в code-behind, но эффект тот же):
<%@ Page language="c#" AutoEventWireup="true" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<script language="C#" runat="server">
System.Data.DataSet ds = new System.Data.DataSet();

void Page_Load(Object Sender, EventArgs e) {
if (!IsPostBack) {
string xmlData = @"
<Countries>
<Country name=""Russia"">
<city name=""Urupinsk"" id=""1"" />
<city name=""Urupinsk-19"" id=""2"" />
</Country >
<Country name=""Non-Russia"">
<city name=""Non-Urupinsk"" id=""3"" />
<city name=""Non-Urupinsk-19"" id=""4"" />
</Country >
</Countries>";

ds.ReadXml(new System.IO.StringReader(xmlData));
repParent.DataSource = ds.Tables["Country"];
DataBind();
}
}

void repParent_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater repChild = (Repeater)e.Item.FindControl("repChild");
repChild.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.repChild_ItemDataBound);
repChild.DataSource = ((System.Data.DataRowView)(e.Item.DataItem)).CreateChildView("Country_City");
repChild.DataBind();
}
}

void repChild_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton linkCity = (LinkButton)e.Item.FindControl("linkCity");
linkCity.Command += new CommandEventHandler(this.linkCity_OnCommand);
linkCity.CommandArgument = (e.Item.DataItem as System.Data.DataRowView)["id"].ToString();
}
}

void linkCity_OnCommand(Object sender, CommandEventArgs e)
{
Label1.Text = "You chose: " + e.CommandName + " Item# " + e.CommandArgument;
}
</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:label id="Label1" runat="server"></asp:label>
<table>
<tr>
<asp:repeater id="repParent" runat="server" OnItemDataBound="repParent_ItemDataBound">
<ItemTemplate>
<td>
<%# DataBinder.Eval(Container.DataItem,"Name")%>
<hr>
<asp:Repeater id="repChild" runat="server">
<ItemTemplate>
<asp:LinkButton id="linkCity" runat="server" CommandName="Select" >
<%# DataBinder.Eval(Container.DataItem,"Name")%>
</asp:LinkButton><BR>
</ItemTemplate>
</asp:Repeater>
</td>
</ItemTemplate>
</asp:repeater></tr>
</table>
</form>
</body>
</HTML>


Вся проблема в строке.
linkCity.Command += new CommandEventHandler(this.linkCity_OnCommand);

Когда прописал в теге LinkButton OnCommand="linkCity_OnCommand" - все работает.

Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 08 June 2005 01:00
Наверх
  



Общие вопросы программирования на ASP.NET

 Событие из вложенных репиторовmiksh  07 June 2005 21:18
 RE: Событие из вложенных репиторовDimon aka Manowar  07 June 2005 23:02
 RE: Событие из вложенных репиторовmiksh  08 June 2005 00:59
 RE[2]: Событие из вложенных репиторовDimon aka Manowar  08 June 2005 12:41
 RE[2]: Событие из вложенных репиторовmiksh  08 June 2005 14:55
 RE[2]: Событие из вложенных репиторовmiksh  08 June 2005 17:12
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта