Я столкнулся с проблемой в отношении элемента управления TreeView
. У меня флажок включен для узлов управления TreeView
. Он работает нормально и отображается правильно. Но когда я устанавливаю то же самое в IIS, флажок там не отображается. Это не делается вообще.
Ниже находится TreeView
:
<asp:TreeView id="tvExplicit"
EnableClientScript="true"
PopulateNodesFromClient="true"
ExpandDepth="0"
ShowLines="true"
ShowExpandCollapse="true"
ShowCheckBoxes="Root"
OnTreeNodePopulate="tvExplicit_TreeNodePopulate"
Width="1px"
runat="server">
<Nodes>
</Nodes>
</asp:TreeView>
Этот код отлично работает на моей локальной машине. Но не при развертывании в IIS. Все работает, кроме отображения флажков для корневых узлов.
Примечание: флажки не отображаются как HTML вообще. Таким образом, это не CSS, блокирующий его как меня
Обновление. Мне удалось выяснить, что предыдущая версия страницы кэшируется в IIS и не является reset даже после того, как пул APP был reset.
2-е обновление: идентификатор клиента флажков в localhost равен ctl00_MainContent_tvExplicitn0CheckBox
, ctl00_MainContent_tvExplicitn1CheckBox
и т.д. Так может быть и причина этого вопроса.
Еще одна вещь, которую я заметил, - это различие в идентификаторе клиента, сгенерированном для элементов управления в localhost и на сервере, развернутом в IIS.
Ниже представлен отображаемый <a>
, который является частью управления TreeView в обоих:
- IIS:
MainContent_tvExplicitt0
,MainContent_tvExplicitt1
это идентификатор дерева node link - LocalHost:
ctl00_MainContent_tvExplicitt0
,ctl00_MainContent_tvExplicitt2
и т.д.
Таким образом, проблема может быть связана с тем, как средства управления фактически отображаются в разных средах, например, на моем сервере localhost и IIS.
В localhost .Net 3.5 framework
есть и на сервере IIS .Net 4
. Так может быть из-за этого, поскольку генерация client ID
в обеих версиях различна.
3-е обновление
Кроме того, я изменил версию рамки на .Net 4
в localhost
, но не воспроизвел проблему. Он также добавил controlRenderingCompatibilityVersion="3.5"
в web.config. Затем я развернул тот же код в IIS, и я получил сообщение об ошибке, что controlRenderingCompatibilityVersion
не является допустимым тегом. Означает ли это, что сервер IIS
не работает на .Net 4
. У меня нет доступа к серверу IIS.
4-е обновление:
Приложение настроено с версией .Net 4
в IIS.
5-е обновление Я развернул такую же сборку на других серверах IIS на разных машинах (это были наши старые серверы, на которых выполнялось наше приложение). И на нем видны флажки. Версия .net-структуры такая же, как и в случае с проблемами. Попросил соответствующую команду обновить те же настройки, что и на этих серверах, на серверы, на которых стоит проблема. Тем не менее это не помогло. Таким образом, похоже, что проблема связана с тем, как веб-сайт настроен на новых серверах, где флажки не отображаются.