我正在使用数据绑定来设置控件上的visible属性:
页面控制:
<asp:LinkButton ID="ApproveTimeLink" runat="server" Visible="<%# CanApprove() %>"> Approve Time</asp:LinkButton>
CodeBehind上的代码:
Protected bool CanApprove() { return false; }
正如您所看到的那样,控件不应该显示,但仍然可以显示。我没有收到任何错误,我很困惑为什么这不起作用。
感谢您的帮助。
答案 0 :(得分:9)
以下所有内容
protected void Page_Load(object sender, EventArgs e)
{
this.DataBind();
}
public bool CanApprove()
{
return false;
}
然后你可以像之前提到的那样在asp-control上使用这个方法!
但我们知道!页面的每个属性都必须不为空,否则数据绑定将失败并出现异常!
答案 1 :(得分:0)
有时您无法使用&lt;%#%&gt;设置控件属性并且您必须使用OnItemDataBound(...)来获取对控件的引用并在其中设置其Visible属性。有时可能是问题的另一件事是嵌套引号,但在您的示例代码中,我不认为这是一个问题。如果您的真实代码包含嵌套引号,例如Visible =“&lt;%#CanApprove(Eval(”ID“))%&gt;”那可能是你真正的问题。你可以用单引号和双引号交替来解决这个问题。
答案 2 :(得分:0)
这对我来说也很棒......谢谢!!
<asp:Label runat="server" ID="lblLocaton" Text='<%# String.Format("{0}, {1}", Eval("City"), Eval("Region.Code")) %>' Visible="<%# ShowLocation() %>" />
AND
MfnPresenter.Website.Presenters.IInstituitonListView.ShowLocation
Get
End Get
Set(ByVal value As Boolean)
'Used by visibility binding expression on lblLocation control inside dlFinancialInsitution
End Set
End Property