GridView - Показать заголовки на пустом источнике данных - PullRequest
74 голосов
/ 10 декабря 2008

В C # как мне по-прежнему показывать заголовки сетки, даже если источник данных пуст.

Я не генерирую столбцы автоматически, поскольку все они предопределены.

В настоящее время я делаю следующее.

Получить DataTable обратно из хранимой процедуры, затем установить DataSource для gridview, а затем вызвать DataBind ().

Это прекрасно работает, когда у меня есть данные, но когда строки не возвращаются, я просто получаю пустое место, где должна быть сетка.

Редактировать: Спасибо всем за свойство .NET 4+. Я спросил это еще в .NET 3,5 дня. Теперь это намного проще. :)

Ответы [ 16 ]

1 голос
/ 18 апреля 2012

Добавьте это свойство в сетку: ShowHeaderWhenEmpty = "True" это может помочь просто проверить

0 голосов
/ 24 января 2018

Я использовал asp sqlDataSource. Это сработало для меня, когда я установил для параметра CancelSelectOnNullParameter значение false, как показано ниже:

<asp:SqlDataSource ID="SqlData1" runat="server" ConnectionString="" SelectCommand="myStoredProcedure" SelectCommandType="StoredProcedure" CancelSelectOnNullParameter="False"> </asp:SqlDataSource>

0 голосов
/ 08 июля 2015
    <asp:GridView ID="gvEmployee" runat="server"    
                     AutoGenerateColumns="False" ShowHeaderWhenEmpty=”True”>  
                        <Columns>  
                            <asp:BoundField DataField="Id" HeaderText="Id" />  
                            <asp:BoundField DataField="Name" HeaderText="Name" />  
                            <asp:BoundField DataField="Designation" HeaderText="Designation" />  
                            <asp:BoundField DataField="Salary" HeaderText="Salary"  />  
                        </Columns>  
                        <EmptyDataTemplate>No Record Available</EmptyDataTemplate>  
                    </asp:GridView>  


    in CS Page

    gvEmployee.DataSource = dt;  
    gvEmployee.DataBind();  

Help.. see that link:
http://www.c-sharpcorner.com/UploadFile/d0e913/how-to-display-the-empty-gridview-in-case-of-no-records-in-d/
0 голосов
/ 08 июля 2015
<asp:GridView ID="gvEmployee" runat="server"    
                 AutoGenerateColumns="False" ShowHeaderWhenEmpty=”True”>  
                    <Columns>  
                        <asp:BoundField DataField="Id" HeaderText="Id" />  
                        <asp:BoundField DataField="Name" HeaderText="Name" />  
                        <asp:BoundField DataField="Designation" HeaderText="Designation" />  
                        <asp:BoundField DataField="Salary" HeaderText="Salary"  />  
                    </Columns>  
                    <EmptyDataTemplate>No Record Available</EmptyDataTemplate>  
                </asp:GridView>  


in CS Page

gvEmployee.DataSource = dt;  
gvEmployee.DataBind();  
0 голосов
/ 21 сентября 2012

Вы можете использовать EmptyDataText, как показано ниже:

<asp:GridView ID="_gridView" RunAt="server" AutoGenerateColumns="false"
          EmptyDataText="No entries found.">

Заголовки не отображаются, отображается сообщение "Записи не найдены". вместо этого.

0 голосов
/ 10 декабря 2008

Используйте EmptyDataTemplate, как показано ниже. Если ваш источник данных не имеет записей, вы увидите свою сетку с заголовками и литеральный текст или HTML, который находится внутри тегов EmptyDataTemplate.

<asp:GridView ID="gvResults" AutoGenerateColumns="False" HeaderStyle-CssClass="tableheader" runat="server">
    <EmptyDataTemplate>
        <asp:Label ID="lblEmptySearch" runat="server">No Results Found</asp:Label>
    </EmptyDataTemplate>
    <Columns>
        <asp:BoundField DataField="ItemId" HeaderText="ID" />
        <asp:BoundField DataField="Description" HeaderText="Description" />
        ...
    </Columns>
</asp:GridView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...