Question

J'essaie de mettre à jour une base de données à l'aide de la GridView Edit, Mettre à jour Commandfield.J'ai deux champs modifiables qui sont affichés sous forme de boîtes de texte lorsqu'ils sont en mode édition.Lorsque vous cliquez sur Soumettre, j'essaie de mettre les valeurs de la zone de texte dans des variables avec lesquelles travailler, mais je ne parviens pas à y accéder.Les deux noms de colonne sont "EOR" et "CatégorieName".J'ai trouvé plusieurs suggestions sur d'autres forums pour essayer quelque chose comme:

protected void ResultGridView_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    TextBox txtEor = (TextBox)myGridName.Rows[e.RowIndex].FindControl("EOR"); 

Quand j'ai débogué le programme, Txteor est toujours nul.La seule chose à laquelle je puisse penser, c'est que je ne fais pas référence à la cellule correctement.Je réglais la tête de tête, accessibleDeaderText, Datafield et Sortexpression sur "Eor", mais cela vient toujours de NULL.

Toute aide serait grandement appréciée!

ASP pour la grille:

<asp:GridView ID="grdEOR" runat="server" BackColor="White"
            BorderColor="#999999" OnPageIndexChanging="grdEor_PageIndexChanging"
            BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical"
            AllowPaging="True"
            PageSize="15" AutoGenerateColumns="False" onrowediting="grdEOR_RowEditing" 
                        onrowcancelingedit="grdEOR_RowCancelingEdit" 
                        onrowupdating="grdEOR_RowUpdating" onrowdeleting="grdEOR_RowDeleting" 
                        ShowFooter="True">
            <PagerSettings Mode="NumericFirstLast" />
            <Columns>
                <asp:BoundField DataField="EORCategoryID" HeaderText="EORCategoryID" 
                    SortExpression="EORCategoryID" ReadOnly="True">
                </asp:BoundField>
                <asp:BoundField DataField="EOR" HeaderText="EOR" SortExpression="EOR" 
                    AccessibleHeaderText="EOR"/>
                <asp:BoundField DataField="CategoryName" HeaderText="CategoryName" 
                    SortExpression="CategoryName" />
                <asp:CommandField ButtonType="Button" ShowDeleteButton="True" 
                    ShowEditButton="True" />


            </Columns>
            <FooterStyle BackColor="#CCCCCC" />
            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="#CCCCCC" BorderColor="Black" 
                BorderStyle="Solid" BorderWidth="5px" />
        </asp:GridView>

Était-ce utile?

La solution

J'ai enfin trouvé un moyen qui fonctionne:

        string newEor = ((TextBox)grdEOR.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
        string newCategoryName = ((TextBox)grdEOR.Rows[e.RowIndex].Cells[2].Controls[0]).Text;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top