2009-07-28 15 views
1

私はasp.netリピータコントロールに精通していません。私は、リピータ、量とskuに2つの列を持っています。ボタンをクリックすると、リピーターの行をループし、各量とスキューをメソッドに渡したいと思う。リピータでこの情報をどのように入手しますか?ASP.NETリピータ

答えて

7

。代わりに、RepeaterItemのControlsプロパティを使用してそれらを見ることもできます。

E:あなたの質問の解釈は、「ボタンクリックによるポストバックでは、リピーターのアイテムをループして、その値をメソッドに渡したい」これは、リピータまたはをクライアント側のJavaScriptで処理する場合には適用されません。

そしてもちろん、MSDNRepeater

+0

おかげで、私は、MSDNで見えたが、例を好きではなかったです。 – jumbojs

0

クライアント側またはサーバー側?サーバー側を意味すると仮定すると、リピーターのOnItemDataBoundイベントを使用します。これは行ごとに1回ずつ実行され、行のデータはパラメータとして含まれます。

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

またはそのような何か:ボタンクリックする方法で

0

のようにそれはあなたがあなたのItemTemplateにに「量」と「SKU」を表示しているかに依存して、様々なクラスを使用する方法を学ぶための素晴らしいリソースです。あなたのItemTemplateに投稿することができればそれはしかし役立つだろう

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

     } 

:あなたは<%# DataBinder.Eval(Container, "quantity") %>構文を使用している場合、あなたはこのような何かを行うことができます。

+0

何が悪い解決策!!!!!列が彼女の順序を変えたら!! –

0

あなたは、そのプロパティにアクセスするには、あまりにも「タイプ」あなたのコントロールしたいと思う...

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