我面临关于 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 中,即使在重置 APP 池后也不会重置。
第二次更新:本地主机中复选框的客户端 ID 为 ctl00_MainContent_tvExplicitn0CheckBox
, ctl00_MainContent_tvExplicitn1CheckBox
,ETC。这可能是问题的原因。
我注意到的另一件事是为本地主机和部署到 IIS 的服务器中的控件生成的客户端 ID 的差异。
下面是呈现的 <a>
这是 TreeView 控件的一部分:
- IIS:
MainContent_tvExplicitt0
,MainContent_tvExplicitt1
这是 TreeView 节点链接的 ID - 本地主机:
ctl00_MainContent_tvExplicitt0
,ctl00_MainContent_tvExplicitt2
等
那么这个问题是否与控件在不同环境(即我的本地主机和 IIS 服务器)中实际呈现的方式有关。
在本地主机中,.Net 3.5 framework
在 IIS 服务器中 .Net 4
.那么会不会是因为这个client ID
两个版本的生成不同。
第三次更新
另外,我将框架版本更改为 .net 4
在localhost
, 但它没有重现问题。它也确实添加了 controlRenderingCompatibilityVersion="3.5"
在 web.config 中。然后我将相同的代码部署到 IIS,我得到一个错误 controlRenderingCompatibilityVersion
不是有效标签。是不是表示IIS
服务器未在 .net 4
上运行.我自己无权访问 IIS 服务器。
第四次更新:
应用程序配置为 .net 4
IIS 中的版本。
第五次更新 我将相同的构建部署到不同机器上的另一个 IIS 服务器(这些是我们运行应用程序的旧服务器)。并且复选框是可见的。 .net 框架的版本与面临问题的版本相同。 要求相关团队将与这些服务器中相同的设置更新到面临问题的服务器。仍然没有帮助。因此,在复选框不可见的新服务器上如何配置网站似乎确实存在问题
最佳答案
还没有答案,需要显示图像,好吧,我也试过了,在 aspx 中使用了这段代码:(我没有更改 IIS 中的任何设置, aspx 中也没有任何内容,创建了一个简单的解决方案 >> 添加了 TreeView 并进行了部署。)
<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 version 6.2,windows server 2012,可以看到这个:
一定有其他东西阻止了您页面中的复选框。显示更多代码。
关于c# - 在 IIS 中部署时,复选框在 TreeView 控件的节点上不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41828174/