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?

Wie wissen Sie, welche lblProductID wird zurückgegeben, wenn Sie haben Dutzende solcher Steuern, wenn Sie nicht mit dem gridView-Veranstaltungen. Ich schlage vor, Sie verwenden Ereignis-bubbling. Verwenden RowCommand statt _TextChanged

InformationsquelleAutor chris05 | 2012-01-14

Schreibe einen Kommentar