Не могу получить значение ячейки на gridview, вложенном в formview - PullRequest
3 голосов
/ 16 августа 2011

У меня есть вид формы и вложенный вид сетки, где я хотел бы иметь возможность выбрать значение определенной ячейки после обновления строки. Я взял пример кода с сайта MSDN, так как он близок к тому, что я хочу:

protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
    {

       GridView SprayGrid = (GridView)FormView1.FindControl("GridView1");

       int Index = SprayGrid.EditIndex;
       GridViewRow row = SprayGrid.Rows[Index];


       TextBox message = (TextBox)FormView1.FindControl("TextBox1");
         message.Text = row.Cells[4].Text;
    }

Тем не менее, по какой-то причине это приведет к получению только индекса ячейки, т.е. если я изменю row.cells [0], я могу видеть в своем окне сообщения номер индекса, если я хочу увидеть любую другую ячейку, тогда сообщение пустое? Любые идеи будут великолепны.

1 Ответ

1 голос
/ 16 августа 2011

Используйте DataKeys в GridView, и вместо попытки установить значение TextBox из ячейки, установите его из DataKey.

В ASPX:

<asp:GridView Id="GridView1" runat="server" DataKeyNames="SomeColumnName">

И в вашемСобытие обновления строки:

TextBox message = (TextBox)FormView1.FindControl("TextBox1");
message.Text = SprayGrid.DataKeys[row.RowIndex]["SomeColumnName"].ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...