Элементы управления с привязкой к данным с отображаемым нулевым значением - PullRequest
0 голосов
/ 28 февраля 2011

Хотя я большой поклонник элементов управления с привязкой к данным со времен ASP.Net 2.0 и часто их использую, изучая их, я, кажется, наткнулся на незаметную (или, скорее, не заботящуюся) проблему, которая, по-видимому, эти элементы управления есть.

Я использую ASP.Net 3.5, и проблема, которую я заметил, заключается в том, что при использовании элементов управления с привязкой к данным (таких как Labels, HyperLinks) внутри элемента управления данными (например, Datalist, Gridview и т. Д.), Даже если возвращаемое значение для одного столбца NULL он по-прежнему отображается, хотя и как пустой тег.

Например: у меня есть Datalist, в котором у меня есть Label, значение которого может быть или не быть NULL. Теперь нет проблем, когда значение не NULL, проблема в том, что значение NULL. В идеале HTML не должен отображаться для элементов управления, которые не имеют никакого значения, но в этом случае HTML (<span></span> в случае метки) соответствующего NULL значащего элемента управления по-прежнему отображается.

Теперь, как я уже говорил ранее, большинство людей не заботятся об этом, так как это не составляет особой проблемы, но если учесть тот факт, что этот элемент управления может быть включен в иерархию родительских элементов управления, а затем повторен во многих случаях это может значительно увеличить содержание HTML (поскольку идентификатор содержимого HTML основан на родительских элементах управления) без добавления текста для поддержания соотношения текст / HTML, что приводит к тому, что поисковые системы отказываются от полная индексация ваших страниц.

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

Помощь всегда ценится.

1 Ответ

1 голос
/ 28 февраля 2011

Да, это имеет смысл, потому что элементы управления не скрывают себя автоматически, вам придется явно скрывать их через Visible = "False", даже без содержимого. Это согласуется с элементами управления с привязкой к данным и без привязки к данным. Исключение разметки при отсутствии содержимого может потенциально привести к хаосу в приложении, особенно если на странице используется JavaScript.

НТН.

...