按钮已禁用但看起来很活跃
Posted
技术标签:
【中文标题】按钮已禁用但看起来很活跃【英文标题】:Button disabled but looks active 【发布时间】:2012-10-09 02:30:20 【问题描述】:所以我有一个当前设置为禁用的按钮,在 IE 中它是灰色的,但在 Firefox、Chrome 和 Safari 中,它被禁用但看起来仍然处于活动状态。
按钮代码
<tr valign="middle">
<td colspan="2" style="width: 100%">
<asp:Button ID="DownloadButton" runat="server" Text="Download" Width="85px" CssClass="ESTableHeaderL" OnClick="DownloadButton_Click" />
</td>
</tr>
还有我的代码
protected void DownloadButton_Click(object sender, EventArgs e)
if (ddBusinessMonth.Items.Count == 0)
DownloadButton.Enabled = false;
ShowClientMessageBox("No Data found for downloading");
....
有什么办法可以让它看起来和 IE 中的一样吗?
谢谢
【问题讨论】:
允许禁用它,但在浏览器中它不会变灰 每个浏览器都有自己的默认样式。但是,您可以强制执行您自己的风格。为此,您必须创建自定义 CSS 类并随意应用它们ESTableHeaderL
的 CSS 是什么?这可能会导致问题,因为每个浏览器都有一些禁用按钮的默认样式。可能你以某种方式重新定义了它
【参考方案1】:
无需使用自定义 CSS 类(不反对样式表)的快速方法,可以在后面的代码中完成。以下会将您的下载按钮的背景颜色设置为绿色(我认为它是绿色的,我是色盲 :-| ):
DownloadButton.Attributes.Add("style", "background-color:#28C523");
【讨论】:
【参考方案2】:Framerwork 4 以不同的方式呈现控件。将以下内容添加到您的 we.config 中,禁用的按钮将照常变灰。
<pages controlRenderingCompatibilityVersion="3.5"/>
【讨论】:
我的web.config已经有这个配置了,但是disabled的按钮还是看不出来。【参考方案3】::disabled selector 可以与 CSS3 一起使用
input[type="button"]:disabled
background:#dddddd;
浏览器兼容性:
IE8+ FF1.5+ SA3.1+ OP9.2+ CH2+
对于 ASP.NET:
为您的服务器端按钮添加一个 CssClass 属性,并将其引用到包含上述 CSS 的类。
【讨论】:
可能还想添加input[type="submit"]:disabled
。
请原谅我的无知,但是如何将样式应用于 asp.net 中的对象
将 CssClass 属性添加到您的服务器端按钮,并将其引用到包含上述 CSS 的类。
很好的解决方案,但不幸的是示例样式的选择,因为(至少对我来说,在 Google Chrome 49 上)它实际上并没有改变按钮的外观。我建议使用color: #ccc;
,它会使按钮的文本变灰。【参考方案4】:
如果 css 类被禁用,您可以通过编程方式分配它
if (ddBusinessMonth.Items.Count == 0)
DownloadButton.Enabled = false;
DownloadButton.CssClass = "disabledbutton";
ShowClientMessageBox("No Data found for downloading");
css
.disabledbutton
background-color:#ddd;
【讨论】:
我可以在客户端做。我在表格中有很多按钮,实际上按钮在禁用状态下工作,但在视觉上它们已启用,即 9 禁用禁用,ie11 启用。我知道按钮的 id 。反正有没有从 css 做的只是不想使用代码隐藏以上是关于按钮已禁用但看起来很活跃的主要内容,如果未能解决你的问题,请参考以下文章
UIDocumentPickerViewController 按钮看起来被禁用但可以工作——为啥?