У меня есть список объектов, заполненных из базы данных.
Мне нужно отобразить сообщение об ошибке, если список пуст и в противном случае отобразить вид сетки.
У меня есть список объектов, заполненных из базы данных.
Мне нужно отобразить сообщение об ошибке, если список пуст и в противном случае отобразить вид сетки.
Вопрос не совсем ясен. Почему бы и нет...
bool isEmpty = !list.Any();
if(isEmpty)
{
// error message
}
else
{
// show grid
}
GridView
также имеет EmptyDataTemplate
, который отображается, если источник данных пуст.
<emptydatarowstyle backcolor="LightBlue" forecolor="Red"/>
<emptydatatemplate>
<asp:image id="NoDataErrorImg"
imageurl="~/images/NoDataError.jpg" runat="server"/>
No Data Found!
</emptydatatemplate>
Если используемая реализация списка - IEnumerable<T>
, а Linq - опция, вы можете использовать Any
:
if (!list.Any()) {
}
В противном случае у вас обычно есть свойство Length
или Count
для массивов и типов коллекций.
If (list.Count==0){
//you can show your error messages here
} else {
//here comes your datagridview databind
}
Вы можете сделать свой datagrid видимым ложным и сделать его видимым в разделе else.
Как использовать метод Count().
if(listOfObjects.Count() != 0)
{
ShowGrid();
HideError();
}
else
{
HideGrid();
ShowError();
}
Вы должны использовать простой оператор IF
List<String> data = GetData();
if (data.Count == 0)
throw new Exception("Data Empty!");
PopulateGrid();
ShowGrid();
var dataSource = lst!=null && lst.Any() ? lst : null;
// bind dataSource to gird source
gridview сам имеет метод, который проверяет, является ли источник данных, с которым вы привязываете его, пуст, он позволяет вам отображать что-то еще.
Если вы используете gridview, используйте пустой шаблон данных: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.emptydatatemplate.aspx
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
runat="server">
<emptydatarowstyle backcolor="LightBlue"
forecolor="Red"/>
<emptydatatemplate>
<asp:image id="NoDataImage"
imageurl="~/images/Image.jpg"
alternatetext="No Image"
runat="server"/>
No Data Found.
</emptydatatemplate>
</asp:gridview>