【问题标题】:How to get GridView.ShowHeaderWhenEmpty Property to display headers如何获取 GridView.ShowHeaderWhenEmpty 属性以显示标题
【发布时间】:2019-03-26 02:44:55
【问题描述】:

我在我的 Asp.Net 应用程序中使用.NET Framework 4.6.1 并尝试将GridView.ShowHeaderWhenEmpty 属性应用到我的gridview 以在页面加载时显示标题(在数据表有数据填充行并且为空之前)。当我加载此页面时,只有一个空白区域,直到用户单击其他一些控件。

ASPX

 <div class="col-md-12" style="overflow: auto; width: 1150px; max-height: 800px; height: 800px; border-style:solid; border-color: darkblue; border-width:thin;">
   <asp:GridView ID="uxSearchGridView" runat="server" ShowHeaderWhenEmpty="true" CssClass="GridView"  HeaderStyle-BackColor="#ADD8E6" BorderStyle="Solid" onRowDataBound="uxSearchGridView_RowDataBound" AutoGenerateColumns="False" OnSorting="uxSearchGridView_Sorting" BackColor="White" BorderColor="#D6D2D2" BorderWidth="1px" CellPadding="3" SelectedIndex="-1" DataKeyNames="TicketNumber" AllowSorting="True" Font-Size="Small" Width="100%" Visible="True" EnableModelValidation="True" style=" margin-top: 10px; margin-bottom: 10px;">
       <Columns>
         <asp:CommandField ShowSelectButton="True" SelectText="Details" ButtonType="Button" HeaderText="Select" />
         <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
         <asp:BoundField DataField="TicketNumber" HeaderText="Ticket Number" SortExpression="Ticket Number" />
         <asp:BoundField DataField="Complexity" HeaderText="Complexity" SortExpression="Complexity" />
         <asp:BoundField DataField="NatureOfInquiry" HeaderText="Nature of Inquiry" SortExpression="NatureOfInquiry" />
         <asp:BoundField DataField="SMEResponseDetail" HeaderText="Response" SortExpression="SMEResponseDetail" />
       </Columns> 
       <FooterStyle BackColor="White" ForeColor="#000066" />
       <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
       <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
       <RowStyle ForeColor="#000066" />
       <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
       <SortedAscendingCellStyle BackColor="#F1F1F1" />
       <SortedAscendingHeaderStyle BackColor="#007DBB" />
       <SortedDescendingCellStyle BackColor="#CAC9C9" />
       <SortedDescendingHeaderStyle BackColor="#00547E" />
   </asp:GridView>
 </div>

C#

  protected void Page_Load(object sender, EventArgs e)
  {
        _dtMgr = new DataAccessManager()
        string staffName = _dtMgr.GetStaffNameByUser(Session["UserNameSession"].ToString());
        if (staffName == string.Empty)
        {
            //error
        }
        else
        {
            Session["StaffName"] = staffName;
            if (!Page.IsPostBack)
            {
                uxSearchGridView.DataSource = null;
                uxSearchGridView.DataBind();
            }
        }
    }

是我遗漏了什么,还是有其他原因导致我的标题不会在页面加载时显示?

【问题讨论】:

    标签: c# header aspxgridview is-empty asp.net-4.6


    【解决方案1】:

    我终于意识到我必须创建一个空的数据表并绑定它才能让ShowHeaderWhenEmpty 工作。在页面加载时,我在sp 中添加了空参数(允许空参数),这将返回dataset,我最终将用作gridviewDatasource。这返回了一个空表,但允许显示标题。我还添加了空行(仅出于美观目的):

    protected void Page_Load(object sender, EventArgs e)
    {
      _searchDT = _dtMgr.GetTicketsByKeyword(uxKeywordTextBox.Text, null);
          ....
          if (!Page.IsPostBack)
                {
                    DataRow dr = null;
                    dr = _searchDT.NewRow();
                    _searchDT.Rows.Add();
                    uxSearchGridView.DataSource = _searchDT;
                    uxSearchGridView.DataBind();
                }
            }
         ...
    }
    

    【讨论】:

      猜你喜欢
      • 2011-09-13
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      • 2016-10-21
      • 2014-10-12
      • 2023-03-25
      相关资源
      最近更新 更多