2009-07-28 6 views
1

Я не знаком с управлением ретранслятором asp.net. У меня есть два столбца в репитере, количество и ску. Нажатие кнопки, я хочу прокрутить строки в репитере и передать в каждом количестве и sku в метод. Как вы получаете эту информацию в ретрансляторе?ASP.NET Repeater

ответ

7

В способе нажатия на кнопку:

foreach(RepeaterItem item in repeaterControlID.Items) 
{ 
    var quantity = item.FindControl("quantityControlID"); 
    var sku = item.FindControl("skuControlID"); 
} 

Или что-то подобное. В качестве альтернативы вы можете использовать свойство Controls RepeaterItem, чтобы просмотреть их.

E: моя интерпретация вашего вопроса была: «При обратном вызове, вызванном нажатием кнопки, я хочу перебрать элементы в повторителе и передать эти значения в метод». Это не применимо для заполнения повторителя или что-то делать на клиентском javascript.

И, конечно же, MSDN является большим ресурсом для обучения, как использовать различные классы, как Repeater

+0

спасибо, я смотрел на MSDN, но не понравились примеры. – jumbojs

0

Сторона со стороны клиента или сервера? Предполагая, что вы имеете в виду серверную часть, используйте событие OnItemDataBound ретранслятора. Это будет срабатывать один раз в строке, причем данные для строки включаются в качестве параметра.

0

Это зависит от того, как вы показываете «количество» и «Артикул» в вашем ItemTemplate. Если вы используете синтаксис <%# DataBinder.Eval(Container, "quantity") %>, вы можете сделать что-то вроде этого:

foreach(RepeaterItem item in Repeater1.Items) 
     {   
      string quantity = ((DataBoundLiteralControl)item.Controls[0]).Text; 
      string sku = ((DataBoundLiteralControl)item.Controls[1]).Text; 

     } 

Это помогло бы, хотя, если вы могли бы разместить свой ItemTemplate.

+0

Какое плохое решение !!!!! А если колонки меняют свой заказ !! ?? –

0

Вы хотите, чтобы «типа» ваши элементы управления тоже доступ к его свойствам ...

foreach(RepeaterItem item in this.RptTest.Items){ string DdlTestValue = ((DropDown)item.FindControl("DdlTest")).SelectedValue; string TxtTestValue = ((TextBox)item.FindControl("TxtTest")).Text; }