我想从代码隐藏的网格视图中获取隐藏字段的值,但不会用于_RowDataBound
或任何其他类似的方法。这是我本次代码(它是一个购物车场景):从代码背后获取gridview值
<asp:GridView ID="gvShoppingCart"
runat="server"
AutoGenerateColumns="False"
AllowPaging="True"
DataKeyNames="ID"
ShowFooter="true">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField ID="lblProductID" runat="server" Text='<%# Eval("ProductID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Product">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# Eval("ProductID", "product_details.aspx?id={0}") %>'
Text='<%# GetProduct(Eval("ProductID")) %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtQuantity" runat="server" Width="35" CssClass="input" onkeypress="return isNumberKey(event)" AutoPostBack="true" ontextchanged="txtQuantity_TextChanged"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
为了简便起见,我删除了某些字段,因为它们的存在只为显示。数量字段用于用户输入数字以将许多产品添加到他的购物车。我想访问_TextChanged
事件中的lblProductID
标签。在这个同样的事件,我想
Label lblProductID = (Label)gvShoppingCart.FindControl("lblProductID");
,但它没有工作,只返回一个空值。解决办法是什么?
如果您没有使用gridView事件,当您有几十个这样的控件时,如何知道返回哪个lblProductID。我建议你使用事件冒泡。使用RowCommand代替_TextChanged – Mubarek 2012-01-14 15:57:34