2009-07-28 47 views
1

我不熟悉asp.net中继器控件。我有两列中继器,数量和sku。点击按钮时,我想遍历中继器中的行,并将每个数量和sku传入方法。你如何在转发器中获得这些信息?ASP.NET中继器

回答

7

在该按钮单击方法:

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

或类似的东西。您也可以使用RepeaterItem的Controls属性来查看它们。

E:我对你的问题的解释是:“在由点击按钮引起的回发中,我想遍历中继器中的项目并将这些值传递给方法。”这不适用于填充中继器在客户端JavaScript中执行某些操作。

和当然,MSDN是学习如何使用各种类,像Repeater

+0

感谢,我看了一下MSDN,但不喜欢的例子。 – jumbojs 2009-07-28 19:08:16

0

客户端或服务器端?假设你的意思是服务器端,使用中继器的OnItemDataBound事件。这将每行触发一次,并将该行的数据作为参数包含在内。

0

你如何显示在你的ItemTemplate“量”和“SKU”一个巨大的资源情况而定。如果您使用的<%# 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

多么糟糕的解决方案!!!!!如果列改变她的订单!! ?? – 2011-11-24 18:19:10

0

你会想“输入”你太控件访问其属性...

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