Редактирование строки в дочернем вложенном gridview в C # - PullRequest
0 голосов
/ 03 октября 2019

Мне нужно отредактировать строку во вложенном (дочернем) виде сетки.

Это мой код, но редактирование всегда открыто с тем же идентификатором:

ВЫБРАТЬ * ИЗ ДОКУМЕНТА, ГДЕ СТОРОНА ('72')

Как решить эту проблему?

//On Gridview g1
<asp:TemplateField HeaderText="" Visible="false">
   <ItemTemplate>
      <asp:Label ID="lblsID" Text='<%# Eval("sID") %>' runat="server"></asp:Label>
   </ItemTemplate>
</asp:TemplateField>

protected void GridView2_RowEditing(object sender, GridViewEditEventArgs e)
{
    GridView g2 = (GridView)sender;
    g2.EditIndex = e.NewEditIndex;

    int customerId = (int)g1.DataKeys[e.NewEditIndex].Value;

    sql = @String.Format(" SELECT * FROM `doTable` ");
    sql += String.Format(" WHERE sID IN ('{0}') ", customerId);

    Response.Write(sql);

    g2.DataSource = GetData(sql);
    g2.DataBind();

}

1 Ответ

1 голос
/ 04 октября 2019

Пожалуйста, попробуйте это:

    protected void GridView2_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView g2 = (GridView)sender;
        g2.EditIndex = e.NewEditIndex;

        GridViewRow gvCustomerRow = g2.NamingContainer as GridViewRow;
        int customerId = (int)g1.DataKeys[gvCustomerRow.RowIndex].Value;

        sql = @String.Format(" SELECT * FROM `doTable` ");
        sql += String.Format(" WHERE sID IN ('{0}') ", customerId);

        g2.DataSource = GetData(sql);
        g2.DataBind();
    }
...