ASP.Net C#asp:TextBox Only'默认值已通过

时间:2011-06-21 15:43:58

标签: c# asp.net visual-studio textbox repeater

<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); 

谢谢; - )

2 个答案:

答案 0 :(得分:2)

我只能猜测:

您在每次回发时都将Repeater绑定到它的DataSource,但不仅仅是if(!Page.IsPostBack)

答案 1 :(得分:1)

我怀疑你的转发器是rebinded。当您点击按钮时,您的page_load事件会在您的点击处理程序之前被调用,您的转发器将被绑定。

所以你需要照顾它。

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