我對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;
}
}