2009-05-05 95 views
1

幾年前,我決定創建自己的DataGrid,因爲我不喜歡微軟提供的標準。這是一個非常簡單的函數,它將DataTable作爲輸入參數,並返回一個字符串(用於在網頁上顯示錶格的html代碼)。asp.net自定義網格vs GridView/ListView

它非常靈活(有一些可選參數可以按照我想要的方式進行分頁,排序和格式化每列)並且速度快(僅從數據庫中檢索使用的記錄)。該函數本身非常短(約20行代碼)。我已經使用它至少4年了。

假設你有一個佔位符,在您的網頁,這是你將如何調用自定義函數:

MyPlaceHolder.Controls.Add(new LiteralControl(CreateCustomGrid(MyDataTable))) 

CreateCustomGrid(MyDataTable)))將返回這樣的事情(如果MyDataTable有2列和2行):

<table class="MyClass" rules="all"> 
    <tr> 
     <th>Column1</th> 
     <th>Column2</th> 
    </tr> 
    <tr> 
     <td align="center">Value1</td> 
     <td align="center">Value2</td> 
    </tr> 
    <tr> 
     <td align="center">Value3</td> 
     <td align="center"><a href=’MyLink’>Value4</a></td> 
    </tr> 
    </table> 

內部函數知道如何給每個列的格式(此功能只被在一個網站上使用),但它也可以通過使用可選的參數來改變它的每一列。分頁和排序也一樣。總而言之,它非常靈活並且非常易於使用。

現在事情已經改變,並且DataGrid已被GridView和/或ListView取代。我已經看過他們,但我沒有看到他們做的任何事情,我的功能沒有,所以我會試圖繼續使用我的功能,但我可能忽略了一些東西。同時,繼續使用自定義函數生成html表格看起來有點奇怪。你對此有何看法?

回答

0

我想說,你應該調查GridView/ListView,看看他們能做什麼,但最終,如果你和你的客戶對你自己的代碼感到滿意並且它適合你,那麼你需要它的一切沒有必要改變只是因爲有別的東西。

1

如果您的代碼有效且經驗豐富,我不會更改任何現有代碼。有關其他功能,您可能需要考慮將其包裝在自定義的數據綁定WebControl中。這樣你可以使用數據源等。

+0

+1我的想法正是如此。說得好! – 2009-05-05 15:34:49