如果列表视图为空则显示按钮
本文关键字:显示 按钮 列表 视图 如果 | 更新日期: 2023-09-27 18:07:55
我有一个列表视图,它从sql数据源检索数据。我试图使两个按钮(是和否)和标签外的列表视图可见,只有当列表视图不是空的。其过程是:一个人将信息输入到文本框中并点击按钮检索,如果输入的数据存在于数据库中,则列表视图显示一定的信息。我有以下代码:
protected void btnExistingRetrive_Click(object sender, EventArgs e)
{
if (lstExisting.Items.Count>0 )
{
lblIsITYou.Visible = true;
btnYes.Visible = true;
btnNo.Visible = true;
}
}
默认情况下按钮和标签是不可见的。问题是,当我点击检索按钮,它显示了我的信息列表视图,但按钮标签仍然不可见。只有当我双击检索按钮时,它们才可见。请告诉我我错在哪里?谢谢你
使用ListView EmptyDataTemplate
<asp:ListView ID="ContactsListView"
DataSourceID="ContactsDataSource"
runat="server">
<LayoutTemplate>
<table runat="server" id="tblProducts">
<tr runat="server" id="itemPlaceholder" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server">
<td>
<asp:Label ID="FirstNameLabel" runat="Server" Text='<%#Eval("FirstName") %>' />
</td>
<td>
<asp:Label ID="LastNameLabel" runat="Server" Text='<%#Eval("LastName") %>' />
</td>
</tr>
</ItemTemplate>
<EmptyDataTemplate>
<table class="emptyTable" cellpadding="5" cellspacing="5">
<tr>
<td>
<asp:Image ID="NoDataImage"
ImageUrl="~/Images/NoDataImage.jpg"
runat="server"/>
</td>
<td>
No records available.
</td>
</tr>
</table>
</EmptyDataTemplate>
</asp:ListView>
在检查项目计数之前绑定listview吗?
在回发时执行此操作,而不是在事件中执行。在Page_Load中这样做:
protected void Page_Load(object sender, EventArgs e)
{
bool visible = (lstExisting.Items.Count > 0); // assuming it's never null
lblIsITYou.Visible = visible;
btnYes.Visible = visible;
btnNo.Visible = visible;
}
如果上面的操作造成了麻烦,那么按照我前面所说的postback操作:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
bool visible = (lstExisting.Items.Count > 0); // assuming it's never null
lblIsITYou.Visible = visible;
btnYes.Visible = visible;
btnNo.Visible = visible;
}
}