В .aspx, как передать значение из asp:Repeater в код позади функции

Итак, я хочу использовать jquery для установки текста кнопки в зависимости от значения свойства в текущей строке повторителя.

Мне нужно вызвать функцию в коде программной части, чтобы сопоставить значение с текстом, который должна иметь кнопка. Итак, мне нужно передать моей функции foo строковое значение свойства UserStatus для текущего элемента в повторителе.

Я хочу сделать следующее, хотя этот синтаксис явно неверен:

<asp:Repeater ID="dgCustomer" runat="server">
  <ItemTemplate> 
    <input id="rb" name="rb" type="radio" onclick='javascript:$("input.magicbutton").val("<%= foo(DataBinder.Eval(Container.DataItem, "UserStatus")) %>");' 

Если код программной части содержит следующее определение метода:

protected string foo(string status)

Каков правильный синтаксис для вызова foo со значением Item из повторителя?


person Winston Smith    schedule 19.12.2008    source источник
comment
Это хороший ответ на вопрос о том, как вызвать функцию С# из aspx.   -  person Eddie    schedule 21.01.2009


Ответы (2)


Переключите ‹%= на ‹%#, и, похоже, все готово.

person Tom Jelen    schedule 19.12.2008
comment
‹%# предназначен для вычислений выражений во время привязки данных. ‹%= в значительной степени эквивалентен Response.Write и может использоваться практически везде вне контекста привязки данных. - person Tom Jelen; 19.12.2008

Единственная проблема, которую я вижу в этом фрагменте кода, заключается в том, что вам нужно использовать слепок привязки данных (<%# ... %>) вместо слепка выражения (<%= ... %>).

Вы можете столкнуться с проблемами, заключая свой самородок в двойные кавычки, поскольку он уже содержит двойные кавычки. Возможно, вам придется foo вернуть значение в кавычках или даже foo просто вернуть все onclick событие...

person bdukes    schedule 19.12.2008