我对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。这只是一个导航到另一个页面的链接。我想用相同的逻辑以类似的方式隐藏它。我在我的webform中有下面的代码。
<asp:LinkButton ID="LinkButton5" runat="server" CausesValidation="False" visible='<%# SetAuthority.AuthorizedToAddEdit() %>'
CommandName="OpenAdminPage" Text="Open Admin Page"></asp:LinkButton>
但链接按钮始终可见,似乎它不是调用类,也没有获取值。看起来这个类没有返回任何价值,有人可以帮助我确定在DetailsView中工作和不在工作中的简单链接按钮之间有什么不同。
注意:有一个解决方法,我可以在页面加载事件中调用相同的方法,可以正常工作而不会出现任何问题。代码如下
protected void Page_Load(object sender, EventArgs e)
{
Boolean myAllowAdd;
myAllowAdd = SetAuthority.AuthorizedToAddEdit();
if (myAllowAdd == false)
{
LinkButton1.Visible = false;
}
}