ASP.NET代码后台(C#)中更改控件的可见性

3
你如何从ASP.net代码中设置(fileupload)控件的可见性(我需要在服务器端隐藏网络用户控件中的文件上传控件,否则hasFIle始终为false)。 同时,将“Visible”属性设置为false无效(因为它会使AJAX面板混乱,所以文件上传会忘记它有一个文件)。
theFileUpload.Visible = false => 不起作用 因此,我想尝试将CSS样式可见性设置为hidden或display为none。
主要问题是我想从服务器端执行它(我知道如何在客户端执行它)。
是否有一种安全的方式覆盖
theFileUpload.Attributes [“styles”]
以防我修改其他CSS样式, 此外,通过修改CSSClass属性将整个CSS类发送到它似乎过于复杂。
先感谢您的帮助, Axel

听起来像是您的文件上传控件在更新面板之外 - 为了使 Visible = false 生效,您可以将其添加到面板中或者让触发事件执行完整的 postback 而不是部分 postback。 - James Manning
1个回答

10

通过使用theFileUpload.Visible = false;,您告诉ASP.NET不要在页面上呈现theFileUpload。

theFileUpload.Attributes.CssStyle[HtmlTextWriterStyle.Visibility] = "hidden";

这样可以让您仅设置特定的CSS属性。


谢谢,我知道那个Visible=False可以使控件完全不呈现;我已经决定写一个类的方式来解决这个问题<style type="text/css"> /我们需要这个来强制渲染一个隐藏的文件上传控件/ .hidden {display:none;} </style> 然后覆盖CssClass: theFileUpload.CssClass = isVisible ? "" : "hidden";但是你的解决方案更优雅,虽然需要测试。 - Axel Grude

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接