ASP.NET Gridview动态服务器标签中的Emptydatatext

时间:2017-12-12 20:23:28

标签: asp.net vb.net aspxgridview

基本上我想要一些下拉列表作为gridview的过滤器。当没有gridview项目与所选过滤器匹配时,它将显示一条消息,表明没有项目与您的搜索匹配(并显示下拉列表值)。我知道我可以从后面的代码中完成这个,但我只是想知道这样的事情是否可行。感谢

<asp:gridview id="gv" runat="server" EmptyDataText="<%# "no items match" & dropdownlist.selectedvalue &"stuff" %>"

2 个答案:

答案 0 :(得分:0)

您需要将页面修改为如此(添加emptyDataTemplate和Label)

    <asp:GridView ID="gv" runat="server" 
     DataBindingComplete="gv_DataBindingComplete" 
        OnPreRender="gv_PreRender">
       <EmptyDataTemplate>
        <asp:Label runat="server" ID="lbInfo" /></EmptyDataTemplate>
    </asp:GridView>

并在您的代码中使用此

   protected void gv_PreRender(object sender, EventArgs e)
    {
        if (gv.Rows.Count==0)
        {
            lbInfo.Text = "no items match " + ddlTest.SelectedItem + " stuff";
        }

    }

答案 1 :(得分:0)

另一种解决方案:

<asp:GridView ID="gv" runat="server">
   <EmptyDataTemplate>
     <asp:Label ID="Label1" runat="server" Text='<%#EmptyData() %>' />
   </EmptyDataTemplate>
</asp:GridView>

后面的代码:

protected string EmptyData()
{
   if (gv.Rows.Count == 0)
      {
        return "no items match" & dropdownlist.selectedvalue & "stuff";
      }
   return string.Empty;
}