Вопрос

Я пытаюсь обновить базу данных, используя редактирование GRIDVIEW, обновить команду поставки.У меня есть два редактируемых поля, которые отображаются как текстовые поля, когда в режиме редактирования.При нажатии «Отправить», я пытаюсь поставить значения текстового поля в переменные для работы, но я не могу получить доступ к ним.Два имена столбцов являются «EOR» и «CatechationName».Я нашел несколько предложений на других форумах, чтобы попробовать что-то вроде:

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

Когда я отладку программы, TXTEOR всегда нулевой.Единственное, что я могу придумать, это то, что я не ссылаюсь на нужную клетку правильно.Я установил Headertext, Accessibleheadertext, datafield и sortexpression к "EOR", но он все еще просто подходит к нуле.

Любая помощь была бы очень ценится!

ASP для GridView:

<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>
.

Это было полезно?

Решение

Я наконец нашел способ, которым работает:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top