2016-04-18 19 views
0

リピーターを介してデータベースから読み取ったデータを表示するASP.NET WebFormsプロジェクトがあります。リピーターのためのコードは次のようになります。私が欲しいものRepeaterの特定の項目をコードで取得する

<asp:Repeater ID="repRMAproduct" runat="server"> 
    <ItemTemplate> 
      <tr> 
       <td> 
        <%# Eval("Description") %> 
       </td> 
       <td> 
        <%# Eval("Qty") %> 
       </td> 
       <td> 
        <asp:TextBox ID="tbNewQty" runat="server"></asp:TextBox> 
       </td> 
      </tr> 
    </ItemTemplate> 
</asp:Repeater> 

ユーザーは彼だけを入力したい行の上に新しい数量を入力するためのものです。次に、保存ボタンをクリックすると、これらの新しい数量を関連付けられた説明と一緒に読むことができます。

MVCでは、jQueryを使用してURLを構築し、コントローラに渡す必要があります。しかし、WebFormsでは直感的ではないようです。ここからどこに行くのですか?あなたのセーブボタンクリックのイベントハンドラで

+0

を保存するために、目に見えないコントロール(Visible=false)、FE Labelを使用することができるか、それが価値だ ')!=エバール(「数量」'です? –

+0

Unmodifideの値には空白のtbNewQtyが含まれています。また、jQueryでURLを作成していた場合は、自分で確認することができます。 – MSOACC

答えて

2

あなたは、ループのすべての項目とは、取得することができますTextBoxFindControlと:

foreach(RepeaterItem item in repRMAproduct.Items) 
{ 
    TextBox tbNewQty = (TextBox) item.FindControl("tbNewQty"); 
    string newQuantity = tbNewQty.Text.Trim(); 
    int quantity; 
    if(int.TryParse(newQuantity, out quantity)) 
    { 
     SaveNewRmaQuantity(product, quantity); 
    }; 
} 

あなたが得るためにFindControl("LblDescriptionId")を使用することができ、あなたの製品については、Labelを使用したい場合それをTextからSaveNewRmaQuantityに渡してください。あなたはまた、どのようにテキストボックスが空でない場合は?変更された値を決定しますProductId

+0

返信ありがとうございます。コードを試してみましたが、コンパイルするとItemRepeater( " – MSOACC

+0

@MSOACC:このコードはどこで呼び出されますか? –

+0

クリックイベントの中で別の場所に呼び出す必要がありますか? – MSOACC

関連する問題