2012-01-25 31 views
0

我希望允許用戶瀏覽一組表,首先在一個表中創建一行,然後創建一個以前一行作爲鍵插入的行。在GridView中添加一個'佔位符'行

由於後續的GridView在輸入前一行之前沒有數據,因此不會呈現表格的HTML。

我想添加一個佔位符行,以確保GridViews始終只存在一個示例行,表示「尚未添加數據」。

這可能嗎?也許一個虛擬的行以編程方式添加,而不是作爲控件的一個功能?

謝謝。

+0

是「虛擬行」唯一的行嗎? –

+0

你是什麼意思?這是數據綁定提供至少一行數據庫的唯一行。我已經去了emptydatatemplate,但它看起來很差,我希望它與表格通常被格式化的方式相同,並且在所有字段中只有一行自動合併,表示沒有數據。 – deed02392

+0

我希望在我的一個項目中有一個gridview,即使在空的時候也顯示頁眉和頁腳,所以我做了一些如下所述的內容:http://weblogs.asp.net/joewrobel/archive/2008/01/30/a -more-elegant-solution-display-gridview-header-and-footer-when-the-data-source-is-empty.aspx,也許這可以幫助你 - 它讓你更好地控制顯示內容 –

回答

2

使用GridView控件的屬性EmptyDataTemplate

<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

I已經去了emptydatatemplate但它看起來很差,我希望它與表格通常被格式化的方式相同,並且在所有字段中只有一行自動合併,表示沒有數據。 – deed02392

+0

您可以將emptydataitem格式化爲與看起來有一行相同的格式,只需在內部放置一行'

'即可。 – Icarus

0

一個虛擬的行中的一個類似的案例爲我工作。

  DataRow dr = mDataTable.NewRow(); 
      dr["KEY"] = "DUMMY"; 
      mDataTable.Rows.Add(dr); 

      DataView pView = new DataView(mDataTable); 
      gridView.DataSource = pView; 
      gridView.DataBind(); 

      gridView.Rows[0].CssClass = "Hidden"; //I am not sure about this actually, see the result 

你可以試試這個作爲替代,如果其他的解決方案不工作。