У меня есть простая веб-форма, в которой есть пара списков и кнопка поиска. Когда кнопка нажата, она возвращает DataSet. Если набор данных содержит записи, я устанавливаю asp: label, для которого изначально установлено значение false, но этого не происходит. Если в наборе данных есть записи, а для свойства visible установлено значение true, метка все равно не отображается.
Я также попытался поместить метку и несколько других элементов управления в html-таблицу и установить атрибут runat = "server" в таблице и изменить видимость этого, но он также не отображается.
Вот код aspx:
<table>
<tr>
<td>
<asp:Label ID="lblSortBy" runat="server" Text="Sort By:" Visible="false">
</asp:Label>
<asp:DropDownList
ID="ddlSortBy"
runat="server"
AutoPostBack="True"
OnSelectedIndexChanged="ddlSortBy_SelectedIndexChanged">
<asp:ListItem Value="Gross">Gross</asp:ListItem>
<asp:ListItem Value="Population">Population</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
</table>
Вот упрощенный код при нажатии кнопки:
public void GetData()
{
DataView dv = GetReportData().DefaultView;
if(dv.ToTable().Rows.Count > 0)
{
lblSortBy.Visible = true;
}
else
{
lblSortBy.Visible = false;
}
}
У меня есть пара панелей обновления вокруг нескольких списков и GridView, но нет ярлыка и раскрывающегося списка. Это вызвало бы проблему?
Я провел тест, установил метку, которая была на панели обновлений, в значение false, если записи были найдены, и метка исчезла, поэтому он работает, если он находится на панели обновлений.