GridView и пустые источники данных - PullRequest
0 голосов
/ 30 июля 2009

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

Есть идеи, как сделать это аккуратно?

Ответы [ 2 ]

1 голос
/ 30 июля 2009

Используйте <EmptyDataTemplate> элемента управления GridView, чтобы определить таблицу, которая будет отображаться, если источник данных не содержит данных. Например

<EmptyDataTemplate>
    <table class="Standard" cellspacing="0" cellpadding="0">
        <tr>
            <th style="width: 25%;">
                Header 1</th>
            <th style="width: 25%;">
                Header 2</th>
            <th style="width: 25%;">
                Header 3</th>
            <th style="width: 25%;">
                Header 4`</th>
        </tr>
        <tr>
            <td style="text-align: center; font-size: 1em; font-style: italic; padding: 1em 1em 1em 1em;"
                colspan="4">
                --- No results found ---
            </td>
        </tr>
    </table>
</EmptyDataTemplate>
0 голосов
/ 02 мая 2012

Вы можете использовать эту маленькую функцию:

public static void ShowNoResultFound(DataTable source, GridView gridView)
    {
        DataTable t = source.Clone();
        foreach (DataColumn c in t.Columns)
            c.AllowDBNull = true;
        t.Rows.Add(t.NewRow());
        gridView.DataSource = t;
        gridView.DataBind();
        gridView.Rows[0].Visible = false;
        gridView.Rows[0].Controls.Clear();
    }

А потом, когда вы получаете данные из sql или другого источника данных, вы делаете это:

if (dSet.Tables[0].Rows.Count > 0)
{
    GridView1.DataSource = dSet.Tables[0];
    GridView1.DataBind();
}
else
{
    ShowNoResultFound(dSet.Tables[0], GridView1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...