首页 新闻 会员 周边

如何根据 LinkButton 的Enabled属性 设置CSS样式

0
悬赏园豆:10 [已解决问题] 解决于 2013-09-22 16:35
<asp:LinkButton ID="lkbtnPrePage" runat="server" OnClick="lkbtnPrePage_Click">上一页</asp:LinkButton>

如何在CSS文件中 根据LinkButton的Enabled的属性值 设置链接的颜色。

比如 LinkButton Enabled=true,ForeColor值为蓝色;
        LinkButton Enabled=false,ForeColor值为灰色。

版本较老的浏览器比如Chromium13.0 ,LinkButton被转成<a disabled="disabled"..>标签,我采用了属性选择器来控制样式。

table a
{
   text-decoration:none;
   color:#70c9e3;
}
table a[disabled="disabled"]
{
   color:#ccc; /*不可用颜色变灰*/
}

但是现在主流的浏览器、智能机浏览器都不支持这个disabled属性了,现在该怎么办?

 

现在可以的一种做法是:

后台lkbtn.Enabled=false;lkbtn.ForeColor=灰; lkbtn.Enabled=true;lkbtn.ForeColor=蓝

但是,我希望样式和后台处理分开,样式写在CSS文件里。

请教一种简便的解决方法

CSS
LetitiaChan的主页 LetitiaChan | 初学一级 | 园豆:185
提问于:2013-09-04 11:16
< >
分享
最佳答案
0

Enabled=false时给LinkButton加个css class,然后定义这个css class的颜色

收获园豆:8
dudu | 高人七级 |园豆:30994 | 2013-09-04 12:18

关键 这个Enabled true/false 是不定的,记录是动态绑定数据库的

LetitiaChan | 园豆:185 (初学一级) | 2013-09-04 12:21

@猩崽: 

<asp:LinkButton ID="lkbtn" runat="server" CommandName="mod" 
Enabled='<%# (bool)(Eval("IsEnabled"))%>' CssClass='<%# (bool)(Eval("IsEnabled"))? "": "disabled"%>'
CommandArgument='<%#Eval("ID")%>'>修改</asp:LinkButton>
dudu | 园豆:30994 (高人七级) | 2013-09-04 12:53

@dudu: 

其实这个问题解决了,那 LinkButton 上一页 下一页 可用性是后台修改的,CSS只能针对Enable属性 设置,怎么办?  后台lkbtn.Enabled=false;lkbtn.ForeColor=....。可以这样做,但是,我希望样式和后台处理分开,样式写在CSS文件里。

LetitiaChan | 园豆:185 (初学一级) | 2013-09-04 13:19
其他回答(2)
0

1、用JS来设置class;

2、在后台根据属性值,构造好class,传递到前台。

收获园豆:2
幻天芒 | 园豆:37175 (高人七级) | 2013-09-04 13:26

可以给段代码瞧瞧么

支持(0) 反对(0) LetitiaChan | 园豆:185 (初学一级) | 2013-09-04 13:38

@猩崽: 

$("table a[disabled='disabled']").addClass="样式表class的名称";

和你选择器是一样的思路,只不过是用的JQ的选择器~
支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-09-04 13:51
0

这个还是用js来实现。

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-09-04 13:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册