如果列表视图为空则显示按钮

本文关键字:显示 按钮 列表 视图 如果 | 更新日期: 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;
    }
}