У меня ужасное время с моим GridView.Я просматривал свой код с помощью расчески с тонкими зубами и не могу найти проблему.
У меня есть ASP.net GridView с семью столбцами;данные поступают из SQL.Два столбца содержат JavaScript, по которому пользователь может щелкнуть, чтобы удалить или изменить запись в базе данных.Другие пять полей содержат имена, номера телефонов и адреса электронной почты людей в базе данных.
Четыре из моих полей - ASP.net TemplateFields.
Когда страница загружается, всеотображается правильно.Однако, если пользователь щелкает ссылку JavaScript, щелкает для сортировки GridView по любому полю или выполняет любое другое действие, которое вызывает обратную передачу, полученная страница может не отображать содержимое моих TemplateFields;все они пустые.
Чтобы вы могли видеть, с чем я работаю, у меня есть столбец «name», который определяется следующим образом:
<asp:TemplateField HeaderText="Name" SortExpression="name" ItemStyle-Width="150">
<ItemTemplate>
<%#(string)Eval("surname") + ", " + (string)Eval("fname") %>
</ItemTemplate>
</asp:TemplateField>
Если я перейду черезКод в отладчике, я вижу, что в случае, если поля шаблона отображаются правильно, отладчик останавливается на строке, которая отображает имя.В случае, если все поля не заполнены, он перепрыгивает через код для отображения содержимого этих полей;и ни по какой недвусмысленной причине.
Единственное, что, кажется, вызывает проблему, - это то, что из строки запроса установлено единственное значение перечисления (которое сообщает странице, какие данныенагрузка).Когда значение enum установлено в 1, я никогда не вижу эту ошибку, но мне кажется, что я всегда вижу ее, когда значение enum установлено в 2.
Однако, на перечисление никогда не ссылаются нигде в моем gridviewcode.
В любом случае всегда вызывается GridView.DataSource = x и всегда вызывается GridView.DataBind ().Я попытался пройти через код и проверить правильность данных из базы данных.Я попытался отладить блок кода, откуда вызывается DataBind, а также обработчик событий GridViewRow_DataBound.
В других местах я видел другие сообщения о проблемах с TemplateField, но ни одна из них, похоже, не касается того, что здесь происходит..
Есть идеи?