Подтвердить что ты не робот

Флажок не отображается на узлах элемента управления TreeView при развертывании в IIS

Я столкнулся с проблемой в отношении элемента управления 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-структуры такая же, как и в случае с проблемами. Попросил соответствующую команду обновить те же настройки, что и на этих серверах, на серверы, на которых стоит проблема. Тем не менее это не помогло. Таким образом, похоже, что проблема связана с тем, как веб-сайт настроен на новых серверах, где флажки не отображаются.

4b9b3361

Ответ 1

Еще не ответ, , чтобы показать изображения, ну, я пробовал то же самое, использовал этот код в aspx: (я не менял никаких настроек в IIS, ничего в aspx тоже, создал простое решение → добавлено древовидное представление и развернуто.)

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> 
    <div> 
        <asp:TreeView ID="TreeTest"
            EnableClientScript="true"
            PopulateNodesFromClient="true"
            ExpandDepth="0"
            ShowLines="true"
            ShowExpandCollapse="true"
            ShowCheckBoxes="Root"
            OnTreeNodePopulate="TreeTest_TreeNodePopulate"
            Width="1px"
            runat="server"> 
            <Nodes>
                <asp:TreeNode Text="Something">
                    <asp:TreeNode Text="11"></asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="Something">
                     <asp:TreeNode Text="11"></asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="Something"></asp:TreeNode>
            </Nodes> 
        </asp:TreeView>  
    </div>
</asp:Content>

В моем локальном ящике можно увидеть следующее: введите описание изображения здесь

Развернутый в IIS версии 6.2, сервер Windows 2012, можно увидеть следующее: введите описание изображения здесь

Должно быть что-то еще, что мешает флажкам на вашей странице. Показать больше кода.

Ответ 2

Иногда IIS настроен для другой версии IE, чем ваша локальная версия, это может вызвать некоторые проблемы совместимости.

Я всегда добавляю следующее в свой элемент head в мои html файлы:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

Здесь больше информации:

https://msdn.microsoft.com/en-us/library/jj676913(v=vs.85).aspx

Ответ 3

Если вы хотите проверить, является ли это имя элемента управления, и вы используете код для создания флажков, вы можете установить свойство clientid для элементов управления, с которыми вы работаете, в Static, обновить код, который управляет им, чтобы использовать только идентификатор управления, а затем посмотреть, работает ли код.

Ответ 4

Перейдите в окно просмотра IE\tools\Compatibilty и нажмите "Добавить", чтобы добавить URL-адрес в список, а затем снова загрузите свою веб-страницу.

Надеюсь, что это поможет

Привет