2009-07-30 80 views
0

我有一個gridview,我希望它顯示標題行,即使它沒有綁定到集合中的任何數據。GridView和空數據源

任何想法如何做到這一點整齊?

回答

1

如果數據源不包含數據,則使用GridView控件的<EmptyDataTemplate>定義要顯示的表。例如

<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

你可以使用這個小功能:

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); 
}