2010-10-27 5 views
1

Я использую 2 LinkButtons внутри серверных элементов управления на индивидуальный DataItem моей веб-странице ASP.NETLinkButton OnCommand вопрос

<asp:LinkButton ID="Item1" runat="server" CommandName="first" 
     OnCommand="Item1_Onclick" CommandArgument="<%# Container.DataItem %`>" 
     Text="<%# Container.DataItem %`>" >  
</asp:LinkButton`> 

и

<asp:LinkButton ID="Item2" runat="server" CommandName="second" 
     OnCommand="Item2_Onclick" CommandArgument="<%# Container.DataItem %`>" 
     Text="<%# Container.DataItem %`>" >  
</asp:LinkButton`> 

Когда я извлекаю имя команды внутри C#, как

e.CommandArgument.ToString().Trim();  

это дает мне правильное название, однако команда arugument

e.CommandArgument.ToString().Trim(); 

для item2 не то, что я ожидаю. Это НЕ относится к item1, но тот, который я задал первоначально как источник данных для управления каталогом данных item2. Это не дает мне последнее значение строки dataitem, которое я ожидаю из link2 кнопки item2. В чем проблема? Где я ошибаюсь?

Кроме того, событие для item2 запускается ТОЛЬКО в первый раз, а не после этого? Есть ли какая-то глупая ошибка, которую я делаю?

+0

Я бы предположил, что вторая кнопка ссылки вставлена ​​в неправильное место :) – SWeko

+0

они вставляются в 2 отдельных элемента управления datalist в тегах itemtemplate. item1 внутри тега datalist1 и item2 внутри тега datalist2. Это неправильно? – zack

ответ

0

В аргумент команды вы не обеспечивают имя свойства в элементе данных

"<%# Container.DataItem.ProeprtyName %`>" 

Произнесите DataSource является объектом пользователя и вам нужен идентификатор пользователя в качестве аргумента команды должно быть <%# Container.DataItem.UserID%> `

1

У меня проблема. Я не включил if (! IsPostBack) в качестве первого заявления в мой метод void Page_Load! Это было глупо со мной. Спасибо в любом случае за все ваше время и идеи.