2011-02-04 110 views
1

我想創建一個用戶將完成的「表」,其中有未知數量的行。動態添加行到GridView/DataGrid/Repeater?

爲了說明這一點,假設在購物之後輸入收據的詳細信息 - 即行數(或項目數量)未知。

要達致這我想創建一個網格單行,幷包含文本框兩列輸入項目名稱和價格:

+ ------- + ---- ----- +
+產品+價格+
+ ------- + --------- +
+豆類+ 0.99 +
+ ------ - + --------- +

然後在第一行完成後,我wan t即時生成另一行等等。

這是最好的控制?對於asp.net來說相當新,所以不確定我是否應該使用Gridview/DataGrid/Repeater或什麼。 (不確定它是否有任何相關性,但texbox的項目有關聯的Ajax AutoCompleteExtender。)

任何指針將是最受歡迎的。

編輯

有一件事我忘了提及的是,在加載時在GridView(或其他)沒有綁定到它的數據。不知道這是否會影響決策。

回答

0

您當然可以使用重複器,但是如果您將數據結構確定爲網格(意思是您計劃或將來可能計劃添加新列),則GridView可能是最好的。

+0

有沒有辦法在運行時向GridView添加行? – Ben 2011-02-04 17:42:17

2

GridViews並不擅長在行內添加行。你可能不得不做一些有點冒險的事情。您可能能夠在網格視圖上設置數據源,以便在實際數據末尾總是有一個空行,然後確保將網格中的最後一行設置爲處於編輯模式每次gridview完成綁定。然後你必須攔截Update動作,並使其實際插入而不是更新。那麼是否還想允許用戶編輯現有行的問題是:在編輯現有行時,您需要消除「空行」,因爲您不能同時擁有兩個可編輯的行。這很棘手,但你可以做到。

另一種方法是使用中繼器以只讀模式顯示所有現有行,然後在最後輸出可編輯的行。

我不確定在這一點上我會選擇哪個。