2013-06-26 2 views
0

У меня есть сетка. как я могу увидеть заголовок столбца на моей странице, когда у него нет данных?
Я стараюсь это:Как показать пустой gid-просмотр?

<Empty Data Template> 
     no data. 
</Empty Data Template> 

, но это не то, что я хочу. Я хочу показать столбец моего вида сетки, даже если в нем нет данных. Помоги мне, пожалуйста!

+0

У вас есть панель headertemplate? –

+0

Да, у меня есть. – Angel

ответ

1

Попробуйте

1) Добавить ShowHeaderWhenEmpty="True" в свой GridView

<asp:GridView ShowHeaderWhenEmpty="true" runat="server" /> 

2) Ваш GridView должен быть привязан к источнику данных (по крайней мере, пустая коллекция) для пустого шаблона, чтобы показать

GridView1.DataSource = [Some DataSource Here]; 
    GridView1.DataBind(); 
+0

"Добавить ShowHeaderWhenEmpty =" True "в ваш вид сетки" !! как это сделать? – Angel

+1

'' – codingbiz

1

Если вы используете таргетинг на C# 4.0+, вы можете использовать свойство ShowHeaderWhenEmpty, в противном случае вам нужно будет добавить некий код.

0

Здесь вы найдете то, что вам нужно:

http://msdn.microsoft.com/pt-br/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> 
+0

Я делал это раньше, но это не то, что я хочу. Я собираюсь показать заголовок моих столбцов в виде сетки. – Angel

0

У вас есть 2 способа сделать это:

1-По имитирующие Поля ввода в

Первый мобильный Второй сотовый Третий сотовый 2-Чтобы создать пустой DataSet и привязать его к GirdView.

Если ds.Tables (0) .Rows.Count> 0 Тогда grd_codes.DataSource = DS grd_codes.DataMember = ds.Tables (0) .TableName

 grd_codes.DataBind() 

    Else 
     Try 
      If ds.Tables(0).Rows.Count = 0 Then 

       ds.Tables(0).Rows.Add(ds.Tables(0).NewRow()) 
       grd_codes.DataSource = ds 
       grd_codes.DataBind() 
       Dim columnCount As Integer = grd_codes.Rows(0).Cells.Count 
       grd_codes.Rows(0).Cells.Clear() 
       grd_codes.Rows(0).Cells.Add(New TableCell) 
       grd_codes.Rows(0).Cells(0).ColumnSpan = columnCount 
       grd_codes.Rows(0).Cells(0).Text = "No Records Found." 

      End If 

Я предпочитаю первый путь, потому что У Binding empty DataSet есть некоторые проблемы.