<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文件里。
请教一种简便的解决方法
Enabled=false时给LinkButton加个css class,然后定义这个css class的颜色
关键 这个Enabled true/false 是不定的,记录是动态绑定数据库的
@猩崽:
<asp:LinkButton ID="lkbtn" runat="server" CommandName="mod" Enabled='<%# (bool)(Eval("IsEnabled"))%>' CssClass='<%# (bool)(Eval("IsEnabled"))? "": "disabled"%>' CommandArgument='<%#Eval("ID")%>'>修改</asp:LinkButton>
@dudu:
其实这个问题解决了,那 LinkButton 上一页 下一页 可用性是后台修改的,CSS只能针对Enable属性 设置,怎么办? 后台lkbtn.Enabled=false;lkbtn.ForeColor=....。可以这样做,但是,我希望样式和后台处理分开,样式写在CSS文件里。
1、用JS来设置class;
2、在后台根据属性值,构造好class,传递到前台。
可以给段代码瞧瞧么
@猩崽:
$("table a[disabled='disabled']").addClass="样式表class的名称";
和你选择器是一样的思路,只不过是用的JQ的选择器~
这个还是用js来实现。