Asp:当visible设置为true时,不显示标签?

我有一个简单的Web表单,它有几个列表框和一个搜索按钮。 单击该按钮时,它将返回一个DataSet。 如果数据集包含记录,我将最初设置为false的asp:标签设置为true,但这不会发生。 如果数据集包含记录且visible属性设置为true,则标签仍未显示。

我还尝试将标签和其他一些控件放在html表中,并在表上设置runat =“server”属性并更改其可见性,但它也没有显示。

这是aspx代码:

Gross Population

这是单击按钮时的简化代码:

 public void GetData() { DataView dv = GetReportData().DefaultView; if(dv.ToTable().Rows.Count > 0) { lblSortBy.Visible = true; } else { lblSortBy.Visible = false; } } 

我在一些ListBoxes和GridView周围有一些更新面板,但没有标签和下拉列表。 这会导致问题吗?

我做了一个测试,如果找到记录并且标签消失,我将更新面板中的标签设置为false,因此如果它在更新面板中,它就可以正常工作。

如果我没有弄错,你的标签应该存在于更新面板上,因为就静态HTML页面而言,当前标签存在的唯一时间,它被设置为不可见。 您必须重新加载整个页面才能再次显示它。

如果按钮位于UpdatePanel内,则表,标签等也必须位于UpdatePanel内才能更新。 否则,只有单击按钮时UpdatePanel的内容才会更新(这就是所谓的部分页面呈现 )。

因此,如果按钮位于UpdatePanel中,则有两种方法可以解决问题:

  1. 将表,Label,DropDownList等放入同一个UpdatePanel中
  2. 或者将它们放在另一个UpdatePanel中,并将该属性的UpdateMode设置为Always,以便更新,即使其他UpdatePanel中的控件启动了回发。

有关详细信息,请参阅MSDN中的此页面 。

  • 你只需要标签上的runat =“server”; 虽然Visible应该默认为True。
  • 确保添加ForeColor以避免在背景中混合。
  • 调试以确保您的标签具有内容,并且它不在Visible = False的另一个控件中。

如果表格可见并且是标签的父容器,我认为根本不需要更改标签的可见性,因为它应始终设置为可见。

我假设如果没有数据,你也会隐藏ddl。 您是否尝试在其中放置一个面板并将其可见性设置为true

如果您要返回行并且您的按钮位于更新面板中,那么该更新面板中的标签和ddl也是如此

感谢它非常有用,将Lable放在更新面板中。