Изменение вывода html в gridview - PullRequest
1 голос
/ 28 июля 2010

Я пытаюсь изменить вывод моего GridView в обработчике событий RowDataBound, но он не работает - ничего не происходит.

Мой код:

Private Sub MyGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles MyGridView.RowDataBound
    e.Row.Attributes.Add("data-xkoordinat", 0)
End Sub

Что я ожидаюсм:

<tr data-xkoordinat="0">..</tr>

Что выходит

<tr>...</tr>

Как добавить атрибут?

Обновление :
У меня естьеще немного исследовал и заметил, что в методе RowDataBound ничего нет и следа - должно быть?Моя подпрограмма Page_Load, в которой происходит привязка данных, выглядит следующим образом:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Using db As IDatabaseAdapter = Locator.GetDatabaseAdapter()
    db.Open()
        MyGridView.DataSource = db.ExecuteReader("MatpunktLista", True, {db.CreateParameter("id_uppdrag", Request.QueryString("id_uppdrag"))})
        MyGridView.DataBind()
    End Using
End Sub

Есть ли здесь что-нибудь, что могло бы привести к тому, что строки не будут привязаны к данным?Я перезагружаюсь через F5 или выбираю поле адреса в браузере и нажимаю Введите , поэтому я не думаю, что обратные вызовы должны быть проблемой.

Ответы [ 2 ]

1 голос
/ 28 июля 2010

Не знаю почему, но сейчас это работает. Я полагаю, что это может иметь какое-то отношение к серверу, обслуживающему старые версии кода, потому что, когда я добавил трассировочные комментарии, чтобы увидеть, что произошло, ничего не появилось - даже после того, как я скомпилировал и перезагрузил.

Теперь внезапно все работает как положено. Единственное, что я сделал, - это перекомпилировал снова, поэтому я предполагаю, что проблема в старом коде. Для любого другого, кто найдет это: код, указанный в вопросе, должен работать - просто убедитесь, что это действительно тот код, который подается в браузер ...

0 голосов
/ 28 июля 2010

Хмммм ... Это должно работать.

Что нужно проверить:

  • Как вы смотрите источник?Если вы используете такой инструмент, как Firebug, отображаемый источник на самом деле не является источником, полученным вашим браузером.Возможно, он удалил атрибут из отображения, потому что он не существует в «стандартном» HTML.Проверьте исходный код с помощью функции браузера «See html source», чтобы убедиться, что он не отображается.
  • Возможно, у вас есть библиотека, которая редактирует отображаемый HTML-код (я использовал один раз, он генерировал более дружественный к CSS)HTML), он также мог удалить неизвестный атрибут.
  • Я знаю, что это очевидно, но будьте уверены, что нигде нет вызова Attributes.Clear ()

Я думаю оэто, но этот фрагмент должен работать ...
См. этот пост , но я не уверен, что это поможет.

ОБНОВЛЕНИЕ: Обратите внимание, чтовам нужно объявить метод привязки данных строки в вашем объявлении Gridview, это не происходит автоматически:

<asp:GridView ID="gvMyGrid" runat="server" onrowdatabound="gvMyGrid_RowDataBound">
...
</asp:GridView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...