Подтвердить что ты не робот

Проверьте, нет ли списка в С#

У меня есть список объектов, заполненных из базы данных.

Мне нужно отобразить сообщение об ошибке, если список пуст и в противном случае отобразить вид сетки.

4b9b3361

Ответ 1

Вопрос не совсем ясен. Почему бы и нет...

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> 

Ответ 2

Если используемая реализация списка - IEnumerable<T>, а Linq - опция, вы можете использовать Any:

if (!list.Any()) {

}

В противном случае у вас обычно есть свойство Length или Count для массивов и типов коллекций.

Ответ 3

    If (list.Count==0){
      //you can show your error messages here
    } else {
      //here comes your datagridview databind 
    }

Вы можете сделать свой datagrid видимым ложным и сделать его видимым в разделе else.

Ответ 4

Как использовать метод Count().

 if(listOfObjects.Count() != 0)
 {
     ShowGrid();
     HideError();
 }
 else
 {
     HideGrid();
     ShowError();
 }

Ответ 5

Вы должны использовать простой оператор IF

List<String> data = GetData();

if (data.Count == 0)
    throw new Exception("Data Empty!");

PopulateGrid();
ShowGrid();

Ответ 6

var dataSource = lst!=null && lst.Any() ? lst : null;
// bind dataSource to gird source

Ответ 7

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

Ответ 8

Если вы используете 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>