我的div
如下
<div class="menu" id="admindiv" runat="server">
<ul>
<li><a href="">welcome to my site<!--[if IE 7]><!--></a><!--<![endif]-->
<table>
<tr>
<td>
<ul>
<li><a href="Reports.aspx">Reports</a></li>
<li><a href="Delete.aspx">Delete</a></li>
</ul>
</td>
</tr>
</table>
<!--[if lte IE 6]></a><![endif]-->
</li>
<!--[if lte IE 6]></a><![endif]-->
</ul>
</div>
我想在代码隐藏的页面上启用或禁用,意味着我想在某些条件下将此div
设置为不可选字段。我尝试了这个,但我没有成功
protected void Page_Load(object sender, EventArgs e)
{
admindiv.Attributes.Add("style", "color:gray;");
admindiv.Attributes.Add("disabled", "true");
}
答案 0 :(得分:3)
您不能使DIV不可选。如果你想让链接不可点击,这就是代码片段:
<div class="menu" id="admindiv">
<ul>
<li><a href="">welcome to my site<!--[if IE 7]><!--></a><!--<![endif]-->
<table>
<tr>
<td>
<ul>
<li>
<asp:HyperLink ID="Link1" runat="server" Text="Reports" />
</li>
<li>
<asp:HyperLink ID="Link2" runat="server" Text="Delete" />
</li>
</ul>
</td>
</tr>
</table>
<!--[if lte IE 6]></a><![endif]-->
</li>
<!--[if lte IE 6]></a><![endif]-->
</ul>
</div>
AND 代码隐藏:
protected void Page_Load(object sender, EventArgs e) {
if(isAdmin) { // check for admin user
Link1.NavigateUrl = "Reports.aspx";
Link1.NavigateUr2 = "Delete.aspx";
} else {
Link1.NavigateUrl = "javascript:return void;";
Link1.NavigateUr2 = "javascript:return void;";
}
}
答案 1 :(得分:2)
Div可以显示和隐藏,但不能禁用。如果div是可见的,除非您单独禁用每个项目,否则其内容将处于活动状态。
禁用每个控件的另一个选项是创建一个透明的新div,但它位于要禁用的部分的顶部,然后只显示/隐藏后面代码中的div。
然而,这不是一种安全机制,因为任何拥有浏览器HTML开发人员插件(如firebug)的人都可以删除该div并获得对控件的访问权。
在ASP.NET中禁用链接的最佳方法是添加“onclick”事件(使用链接按钮和超链接):
LinkButton1.Attributes["OnClick"] = “return false;”;