Holen Sie sich gridview Werte aus dem code hinter
Ich möchte den Wert eines hidden-Feld in einem grid-Ansicht, der code-behind -, aber nicht in der _RowDataBound
oder jegliche andere ähnliche Methode. Hier ist mein code (es ist ein Warenkorb-Szenario):
<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>
Für die der Kürze halber habe ich entfernt, bestimmte Felder, da Sie es nur für die Anzeige. Das Feld Menge ist es für den Benutzer zur Eingabe einer Nummer, um eine Nummer hinzuzufügen, die Produkte zu seinem Warenkorb. Ich möchte den Zugriff auf die lblProductID
label in der _TextChanged
Veranstaltung. In diesem gleichen Fall, ich habe versucht,
Label lblProductID = (Label)gvShoppingCart.FindControl("lblProductID");
aber es hat nicht funktioniert und gibt nur ein null-Wert. Was ist die Lösung?
InformationsquelleAutor chris05 | 2012-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für jede Zeile in der
GridView
es ist einHiddenField
für die ProductID.Können Sie den Zugriff auf die
HiddenField
einer Zeile (im Beispiel die erste Zeile) mit dem folgenden code (vorausgesetzt, IhrHiddenField
ist in der ersten Zelle):Hoffe, das hilft.
In das TextChanged-Ereignis der Absender bezieht sich auf das TextBox-Steuerelement. Von dort aus gelangen Sie zu der Zeile die Kontrolle durch den Zugriff auf ((Control)sender).Eltern.Eltern.
Ich habe gerade gesehen, Ihren Kommentar auf die Frage. Sicher, RowCommands sind auch eine option.
Dank @Hans, das funktionierte gut für mich 🙂
InformationsquelleAutor Hans
Versuchen zu ersetzen, das HiddenField auf ein label oder ein Textfeld, und legen Sie die sichtbar - Attribut auf false.
Ich hatte versucht, dies vor, und es funktioniert.
InformationsquelleAutor Anwar