У меня есть gridview, и я хочу, чтобы он отображал строку заголовка, даже если в коллекции нет данных, к которым она привязана.GridView и пустые источники данных
Любые идеи о том, как это сделать аккуратно?
У меня есть gridview, и я хочу, чтобы он отображал строку заголовка, даже если в коллекции нет данных, к которым она привязана.GridView и пустые источники данных
Любые идеи о том, как это сделать аккуратно?
Используйте команду <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>
Вы можете использовать эту маленькую функцию:
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);
}