如何使用 runat="server" 删除控件在 asp.net 中指定
我有一个带有服务器可访问控件的网页,请参阅下面的“FileIconLink”:
<body>
<p class="FirstTitle style5">Downloads:</p>
<div id="BreadcrumbDiv">
<p style="padding-left:5px; ">Page Loading...</p>
</div><!--/BreadcrumbDiv-->
<div id="DirLinksDiv">
<p><span class="SecondTitle">Files:</span></p>
<a runat="server" href="#" id="FileIconLink">File</a>
<% WriteFileLinks(); %>
<p><span class="SecondTitle">Folders:</span></p>
<a runat="server" href="#" id="FolderIconLink">Folder</a>
</div><!--/DirLinksDiv-->
</body>
<%RemoveHTMLTemplates(); %>
“FileIconLink”和“FolderIconLink”都是由我的代码复制的 Web 控件的模板 - 例如 <% WriteFileLinks(); %>
上面。如何在服务器上运行时从网页中永久删除这些模板而不导致错误:
无法修改控件集合,因为控件包含代码块(即 <% ... %>) .
提前致谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是因为您有 <% %>在您尝试更改的控件内。而不是使用 <% %>在 aspx 页面中,我会修改后面的代码以向 div 添加文字控件或其他内容,例如:
然后您应该能够从后面的代码修改您的控件。
This is because you have <% %> inside the control you're trying to change. Instead of using <% %> in the aspx page, I would modify the code behind to add a literal control or something to the div, like:
You should then be able to modify your control form the code behind.
您的内联代码在渲染期间执行。
但您可能想在加载期间删除模板。
这意味着这两种技术是冲突的。
Your inline code is executed during render.
But you probably want to get rid of the templates during Load.
Which means that the two techniques conflict.
最终我意识到我的方法是错误的,正如 Cade Roux 所暗示的那样,我需要决定在哪里使用模板。
我的解决方案如下:
Ultimately I realised my approach was wrong, as Cade Roux was alluding to, I needed to make up my mind where the templates were going to be used.
My solution was as follows:
Page 对象除了 Page_Load 函数外还有另一个函数 Page_PreRender,该函数在 Page_Load 之前执行。因此,请尝试删除此 Page_PreRender 函数中的逻辑。
请参考此链接 http://msdn.microsoft .com/en-us/library/system.web.ui.control.prerender.aspx
The Page object has another function apart from Page_Load function called Page_PreRender, this function gets executed before Page_Load. So please try remove logic in this Page_PreRender function.
Please refer this link http://msdn.microsoft.com/en-us/library/system.web.ui.control.prerender.aspx