Получить значение ячейки GridView, зная только индекс строки и столбца - PullRequest
0 голосов
/ 27 декабря 2011

Я думаю, что название моего вопроса довольно простое.

Любая помощь приветствуется ..

Ответы [ 2 ]

3 голосов
/ 27 декабря 2011

Если это BoundField, который вы можете сделать

gv.Rows[1].Cells[1].Text;

Если это TemplateField, вы должны получить элемент управления с нужным значением.

Label L = gv.Rows[1].FindControl("yourcontrolId") as Label;
L.Text;
2 голосов
/ 27 декабря 2011

С BoundField и в режиме только для чтения вы можете использовать GridView1.Rows[x].Cells[x].Text, но в режиме редактирования вы должны использовать коллекцию Controls, чтобы получить ссылку на элемент управления.Этот метод возвращает объект Control.

Control control=GridView1.Rows[x].Cells[x].Controls[0]; // later you may cast it to appropriate control class.

Если используется поле шаблона, необходимо выполнить метод FindControl из коллекции Cells, чтобы получить ссылку на элемент управления на основе его ID,Вы также можете использовать коллекцию Cells[x].Controls.

Control control=GridView1.Rows[x].Cells[x].FindControl("ID_Of_Control"); // later you may cast it to appropriate control class.

РЕДАКТИРОВАТЬ:

Также возможно, что в полях шаблонов может быть один или несколько элементов управления с одинаковым именем / идентификатором.В этом случае вы не можете использовать метод FindControl.

Пример:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" Text="Button" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" Text="Button" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Теперь, чтобы получить Button и изменить ее текст со 2-й строки и 1-й ячейки:

 Button btn = GridView1.Rows[1].Cells[0].Controls[1] as Button ;
 if(btn!=null)
    btn.Text = "Hello";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...