<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。
这是cartQty的代码隐藏
LinkButton lb = (LinkButton)e.CommandSource;
int varCartQty = Convert.ToInt32(((TextBox)lb.Parent.FindControl("cartQty")).Text);
谢谢; - )
答案 0 :(得分:2)
我只能猜测:
您在每次回发时都将Repeater绑定到它的DataSource,但不仅仅是if(!Page.IsPostBack)
答案 1 :(得分:1)
我怀疑你的转发器是rebinded
。当您点击按钮时,您的page_load
事件会在您的点击处理程序之前被调用,您的转发器将被绑定。
所以你需要照顾它。
if(!IsPostBack)
{
//Put repeater binding code here
}