如何在ASP.NET中获取TextBox的值

时间:2013-06-11 17:53:51

标签: c# asp.net textbox postback

我在文本框中输入了一个值,但是当我单击按钮获取服务器端的值时,它仍然检索旧值。 这是我的代码: ASPX:

<asp:GridView ID="gvTicketSkus" runat="server" AutoGenerateColumns="false" 
                        CssClass="innergv" HeaderStyle-CssClass="innergvHeader" GridLines="Horizontal"
                         Width="570px">
                <Columns>
                    <asp:BoundField HeaderText="Sku" DataField="TicketItemCode" />
                    <asp:BoundField HeaderText="TICKET TYPE" DataField="TicketItemCodeDescription" />
                    <asp:BoundField HeaderText="Tickets#" DataField="NumberOfWristbandsPerTicket" Visible="false" />
                    <asp:BoundField HeaderText="PRICE" DataField="Price" DataFormatString="{0:c}" />
                    <asp:TemplateField HeaderText="QUANTITY">
                        <ItemTemplate>
                            <asp:TextBox ID="txtQuantity" runat="server" TextMode="SingleLine" MaxLength="4" Width="80px" CssClass="quantity" Text="0"/>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

C#:

foreach (GridViewRow gvr in gvTicketSkus.Rows)
        {
            sku = gvr.Cells[0].Text;
            quantity = Convert.ToInt32(((TextBox)gvr.FindControl("txtQuantity")).Text);
            if (quantity > 0)
            {
                pendingOrder.Add(sku, quantity);
            }
        }

正如你看到我得到txtQuantity的值时,它给了我旧值,而不是我输入的值。

我想在回发中存在一些问题。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用

Request.Form[((TextBox)gvr.FindControl("txtQuantity")).ClientID];

准确了解发布到服务器的内容。

您可能需要处理语法。我现在无法测试它。