是否可以使用DataBinding来评估.aspx页面上的控件?

时间:2018-04-11 13:26:52

标签: asp.net webforms

我不确定我是否正确地提出了这个问题。我知道我可以在代码背后完成我需要的东西,但我想知道这是否可行。如果另一个控件中有值,我想隐藏控件。我知道我可以在转发器中使用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所以我认为它可能会起作用。它没有抛出任何错误,但它没有显示/隐藏文本框。我只是想知道这是否可行以及我必须做些什么才能实现这一目标。

非常感谢任何帮助。

1 个答案:

答案 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>