2011-06-21 7 views
0
<asp:Repeater ID="Cartridges" runat="server" onitemcommand="Cartridges_ItemCommand"> 
    <ItemTemplate> 
      <p class="cartqty">QTY <asp:TextBox ID="cartQty" Text="0" runat="server"></asp:TextBox></p> 
      <div class="cartbuy2"><asp:LinkButton ID="buy" runat="server" CommandName="AddtoCart" CommandArgument='<%#Eval("cartID") %>' Text="Buy"></asp:LinkButton></div> 
    </ItemTemplate> 
</asp:Repeater> 

TextBox cartQtyは、入力された値ではなく、デフォルト値の0を返すのはなぜですか?値を3に変更すると、入力内容に関係なく3が出力されます。ここでASP.Net C#asp:TextBoxのみデフォルト値渡し

はcartQty

LinkButton lb = (LinkButton)e.CommandSource; 
int varCartQty = Convert.ToInt32(((TextBox)lb.Parent.FindControl("cartQty")).Text); 

ための分離コードは、私はあなたのリピーターがrebindedある疑うあなた;-)

答えて

1

をありがとうございます。ボタンをクリックすると、page_loadイベントが、リピーターがバインドされているクリックハンドラーの前に呼び出されます。

だから、あなたはそれの世話をする必要があります。

if(!IsPostBack) 
{ 
    //Put repeater binding code here 
} 
2

私は推測することができます。

あなたはすべてのポストバックでそれのDataSourceへのリピーターを結合けどif(!Page.IsPostBack)

だけでなく、されています
関連する問題