Как передать параметр в usercontrol в ретрансляторе - PullRequest
2 голосов
/ 18 августа 2011

У меня есть usercontroll, который принимает некоторый параметр, и мне нужно вставить этот usercontrol в ретранслятор и передать параметр из List <> каждому, я делаю это так:

<asp:Repeater ID="winnersRepeater" runat="server">
  <ItemTemplate>
    <uc:myControl ID="myControl" NodeId="<%# DataBinder.Eval(Container.DataItem,"Id")%>" runat="server" />        
  </ItemTemplate>
</asp:Repeater>

Iсделать привязку в PageLoad:

List<Winner> winners = new List<Winner>();
//...
winnersRepeater.DataSource = winners;
winnersRepeater.DataBind();

Это не работает, я получаю Error creating usercontrol... The server tag is not well formed.

Как я могу это сделать?спасибо

Ответы [ 2 ]

5 голосов
/ 18 августа 2011

Трюк здесь с кавычками - вы используете двойные кавычки как для открытия и закрытия свойства NodeId здесь, так и для включения строки в выражение.Вы должны использовать одинарные кавычки в одном месте и двойные в другом.

2 голосов
/ 18 августа 2011

Вы можете обработать событие ItemDataBound повторителя. В вашем обработчике вы должны иметь возможность выполнять FindControl ("myControl") и передавать ему значение NodeId без необходимости декларировать его в разметке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...