我不确定我是否正确地提出了这个问题。我知道我可以在代码背后完成我需要的东西,但我想知道这是否可行。如果另一个控件中有值,我想隐藏控件。我知道我可以在转发器中使用databinder.eval,但是我可以将它用于页面上的普通asp控件吗? 换句话说,我想做这样的事情:
<asp:TextBox runat="server" ID="ConditionalText" Text="Show if other value is empty" Visible ='<%# testValue.Text != "" ? false : true %>'></asp:TextBox>
<asp:TextBox runat="server" ID="testValue"></asp:TextBox>
我尝试了上面的方式,<%# testValue.
公开了&#34; testValue&#34;的可用属性。 TextBox所以我认为它可能会起作用。它没有抛出任何错误,但它没有显示/隐藏文本框。我只是想知道这是否可行以及我必须做些什么才能实现这一目标。
非常感谢任何帮助。
答案 0 :(得分:1)
它可以工作,但由于你在GridView,Repeater等之外使用数据绑定表达式,你必须手动调用它。
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
//rest of the code
}
//call databind manually
DataBind();
}
PS最好使用IsNullOrEmpty
代替= ""
<asp:TextBox runat="server" ID="ConditionalText" Text="Show if other value is empty"
Visible='<%# !string.IsNullOrEmpty(testValue.Text) ? false : true %>'></asp:TextBox>