我对 C# 有点陌生,有一个问题。
我有一个如下的类,它只返回 false (这只是为了测试)
public class SetAuthority
{
public SetAuthority()
{
//
// TODO: Add constructor logic here
//
}
public static Boolean AuthorizedToAddEdit()
{
return false;
}
}
我有一个带有两个链接按钮的 DetailsView 来编辑和添加新记录。我想根据上面的类方法返回值隐藏链接按钮。
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" visible='<%# SetAuthority.AuthorizedToAddEdit() %>'
CommandName="Edit" Text="Edit"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" visible='<%# SetAuthority.AuthorizedToAddEdit() %>'
CommandName="New" Text="New"></asp:LinkButton>
</ItemTemplate>
当我运行程序时,上面的作品文件和编辑和新建链接按钮被隐藏。
但问题是,我在 DetailsView 之外有一个单独的链接按钮。它只是一个导航到另一个页面的链接。我想使用相同的逻辑以类似的方式隐藏它。我的网络表单中有以下代码。
<asp:LinkButton ID="LinkButton5" runat="server" CausesValidation="False" visible='<%# SetAuthority.AuthorizedToAddEdit() %>'
CommandName="OpenAdminPage" Text="Open Admin Page"></asp:LinkButton>
但是链接按钮总是可见的,似乎它没有调用类并且没有取回值。它似乎是类没有返回任何值,有人可以帮助我确定拥有这个和在 DetailsView 中工作和不为简单的链接按钮工作之间的区别。
注意:有一个解决方法,我可以在 Page Load 事件中调用相同的方法,该方法可以正常工作而没有任何问题。代码如下
protected void Page_Load(object sender, EventArgs e)
{
Boolean myAllowAdd;
myAllowAdd = SetAuthority.AuthorizedToAddEdit();
if (myAllowAdd == false)
{
LinkButton1.Visible = false;
}
}