Pregunta Casilla de verificación no visible en los nodos del control TreeView cuando se implementa en IIS


Estoy frente a un problema con respecto a la TreeView controlar. Tengo habilitada la casilla de verificación para los nodos de TreeView controlar. Está funcionando bien y se muestra correctamente. Pero cuando despliegue lo mismo en IIS, la casilla de verificación no está visible allí. No se representa en absoluto. abajo esta el 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> 

Este código funciona bien en mi máquina local. Pero no cuando se implementa en IIS. Todo funciona, excepto mostrar casillas de verificación para nodos raíz.

Nota: Las casillas de verificación no se representan como HTML en absoluto. Entonces no es CSS bloqueándolo, como yo

Actualizar : Pude ver que la versión anterior de la página está en caché en IIS y no se restablece incluso después de que se restableció el grupo de aplicaciones.

2da actualización: ID de cliente de casillas de verificación en localhost es ctl00_MainContent_tvExplicitn0CheckBox, ctl00_MainContent_tvExplicitn1CheckBox, etc. Entonces, ¿puede ser la razón del problema? Una cosa más que noté es la diferencia en los ID de cliente generados para los controles en el host local y en el servidor desplegado en IIS. Debajo está el renderizado <a> que es parte del control treeview en ambos:

  1. IIS: MainContent_tvExplicitt0,MainContent_tvExplicitt1 esto es ID del enlace del nodo treeview
  2. LocalHost: ctl00_MainContent_tvExplicitt0,ctl00_MainContent_tvExplicitt2, etc.

Entonces, ¿el problema puede estar relacionado con la forma en que se están procesando los controles en diferentes entornos, como mi servidor local y el servidor IIS? En localhost, .Net 3.5 framework está allí y en el servidor IIS .Net 4 . Entonces, ¿puede ser debido a esto como client ID la generación es diferente en ambas versiones.

3ra actualización Además, cambié la versión de framework a .net 4 en localhost, pero no reprodujo el problema. También agregó controlRenderingCompatibilityVersion="3.5" en web.config. Luego implementé el mismo código en IIS, y recibí un error que controlRenderingCompatibilityVersion no es una etiqueta válida Eso significa IIS el servidor no se está ejecutando .net 4.No tengo acceso al servidor IIS.

4ta actualización: La aplicación está configurada con .net 4 versión en IIS.

5ta actualización Implementé la misma compilación en otros servidores IIS en diferentes máquinas (estos eran nuestros servidores antiguos en los que se ejecutaba nuestra aplicación). Y las casillas de verificación son visibles en eso. La versión de .NET Framework es la misma que en los problemas que enfrenta. Pidió al equipo relevante que actualice la misma configuración que en estos servidores a los servidores que tienen problemas. Aún así no ayudó. Por lo tanto, parece ser un problema con la configuración del sitio web en nuevos servidores donde las casillas de verificación no son visibles


32
2018-01-24 12:22


origen


Respuestas:


Aún no es una respuesta, necesario para mostrar las imágenes, bueno, intenté lo mismo, usé este código en aspx: (No cambié ninguna configuración en IIS, tampoco en aspx, creé una solución simple >> agregué la vista en árbol y la implementé).

<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>

Checked en mi local podría ver esto: enter image description here

Implementado en IIS versión 6.2, Windows Server 2012, podría ver esto: enter image description here

Debe haber algo más que impida las casillas de verificación en su página. Mostrar más código


8
2018-02-02 08:00



A veces, IIS está configurado para una versión diferente de IE que su versión local, esto podría causar algunos problemas de compatibilidad.

Siempre agrego lo siguiente a mi elemento principal en mis archivos html:

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

Hay más información aquí:

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


5
2018-01-31 22:20



Si desea probar si se trata de los nombres de control y si está utilizando el código para crear las casillas de verificación, puede establecer la propiedad de IdCliente para los controles con los que está trabajando en Estático, actualizar el código que lo administra para usar solo el ID de control , y luego ver si el código funciona.


0
2018-02-21 15:12



Vaya a la vista de IE \ herramientas \ Vista de compatibilidad y presione Agregar para agregar su URL a la lista, luego intente cargar su página web nuevamente.

Espero eso ayude

Saludos


-1
2018-01-24 12:28