2009-07-28 74 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; }