2011-06-21 64 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 Only'默認值通過

下面是cartQty

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

謝謝;-)

回答

1

我懷疑你的中繼器是rebinded。當您點擊該按鈕時,您的點擊處理程序之前調用您的page_load事件,此時您的中繼器已綁定。

所以你需要照顧。

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

我只能猜測:

您具有約束力的轉發器,它的DataSource上的每個回發,但不僅if(!Page.IsPostBack)