Визуализированный код Gridview в панели обновлений стал невидимым - PullRequest
0 голосов
/ 19 марта 2010

У меня есть элемент управления gridview внутри панели обновления. Когда я запускаю приложение и смотрю на сгенерированный исходный код, нет никакого исходного кода о gridview. Так что я не могу приблизиться к элементам внутри сетки.

Мой вопрос: где отображается код gridview и как я могу подойти к нему внутри?

Ответы [ 2 ]

1 голос
/ 19 марта 2010

Вы пытаетесь просмотреть свой исходный код из браузера? Это никогда не будет хорошей идеей, если вы хотите получить доступ к своим элементам управления из вашего gridview.

Чтобы получить доступ к вашим элементам управления из своего окна сетки, найдите их в своем коде. Если вам нужно передать их в некоторые клиентские сценарии, вы должны использовать атрибут ClientID своих элементов управления. Вот пример того, что я делаю в событии RowDataBound моего gridview.

protected void checkGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        Button moveButton = (Button)e.Row.Cells[9].Controls[1];            
        moveButton.Attributes.Add("onclick","someJavaScript('"+moveButton.ClientID+"');");
    }
}

EDIT

Чтобы показать вам пример того, что вам нужно сделать на стороне клиента, вот простая функция javascript, которая использует ClientID

function someJavaScript(buttonID)
{
  var button = document.getElementByID(buttonID);
  button.Click();
}

вы также можете использовать функцию $ get и сказать

var button = $get(buttonID);
0 голосов
/ 19 марта 2010

Для пояснения: вы открыли страницу в веб-браузере, чем нажали «Просмотр источника» и не смогли найти таблицу HTML, соответствующую GridView, пока она существует на экране? Если это так, то это понятно - добро пожаловать в мир динамического HTML AJAX. Для просмотра таблицы используйте:

  • ИЛИ FireFox + плагин firebug
  • ИЛИ IE + devtoolbar
  • ИЛИ Chrome

У всех этих инструментов есть меню: Inspect Element - нажав на него, вы увидите реальное дерево DOM, как и ожидалось.

Относительно вашего вопроса о "приближении". В элементах управления ASP.Net есть очень полезное свойство метода ClientID для всех элементов управления - этот идентификатор содержит не-человеческую строку, как на самом деле назван элемент, включая все контейнеры родительских имен. Используя этот идентификатор, вы можете найти элемент, например, по document.getElementByID

...