2010-06-15 60 views
1

我有一個由Web服務搜索功能填充的gridview。 網格中的某些列是templatefields,因爲從搜索返回的值(在數據表中)是ids - 然後使用這些id在rowdatabound事件觸發並填充標籤或某些類型時查找值。 這意味着我對這些id/lookup列的排序功能按ID排序,而不是我查找的文本值,實際上填充了網格(儘管我的確將ID放在網格數據鍵中)。當列是代碼時按字母順序排序gridview

我想要做的是頂部能夠按照查找的文本值而不是這些特定列的代碼進行排序。 我想要解決這個問題的方法是,當數據表從搜索中返回時,添加更多列的文本值並完成所有查找操作,從而能夠直接從手動添加的列進行排序。

有沒有另外一種方法來做到這一點?因爲這種方法看起來有點像閃光。 雖然我猜它除去具有做的RowDataBound事件仰視....

我的排序功能的工作原理是在會議,並在每個綁定抓住排序列堅持DataTable中和GridView控件綁定到將排序屬性設置爲列的DataView和方向。

感謝

NAT

+0

你解決了你的問題嗎? – joao2fast4u 2014-12-29 18:12:58

回答

0

我不明白爲什麼你的數據表存儲在會話中,有多少用戶,你呢?通常情況下,您應該將每個特定事件(排序,分頁,編輯...)重新綁定到數據源,而不是每次回發(gridview存儲在viewstate中)。

是不是有可能通過sql-join直接從數據庫中獲取文本值?那麼你不需要在rowdatabound中查找,你可以將SortExpression設置爲該列。

+0

嗨 我在會議中堅持表格,主要是因爲搜索需要書籤的能力,而且似乎最好的辦法是用新的QS vars將數據放入會話中,並由新的頁。由於該頁面尚未發佈,因此無法使用viewstate。也因爲我在另一個頁面上使用相同的數據,用戶幾乎總是從這個頁面點擊,並不想再次運行搜索.. 和我不能做連接和事情,因爲這是Web服務這是怎麼會是不幸的:( – nat 2010-06-15 10:09:26