2012-10-06 56 views
0

這是表的內容1如何通過displaymember排序datagridview的,而不是由valuemember

代碼,描述
1,菠蘿
2,香蕉
3,草莓
4,木瓜
5,蘋果

它綁定到我的datagridview。 我想它displaymember而不是valuemember進行排序,因此它會有點像這個

代碼,描述
5,蘋果
2,香蕉
4,木瓜
1,菠蘿
3,草莓

注意:說明只顯示給我的datagridview而不是代碼字段。

編輯:

這是我的代碼:

dim dgvColCmb as New System.Windows.Forms.DataGridViewComboBoxColumn 
with dgvColCmb 
    tmpDSet.Tables(0).DefaultView.Sort = tmpDSet.Tables(0).Columns(1).ColumnName & " DESC " 
    Dim tmpDTable As DataTable = tmpDSet.Tables(0).DefaultView.ToTable 
    .DataSource = tmpDTable 
    .ValueMember = tmpDTable.Columns(0).ColumnName 
    .DisplayMember = tmpDTable.Columns(1).ColumnName 
    .ReadOnly = True 
end with 
dtg.columns.add(dgvColCmb) 
dtg.DataSource = sDSet.Tables(0) 

回答

2

您可以排序的數據表被綁定到DataGridView:

table.DefaultView.Sort = "Description desc"; 
DataTable sortedData = table.DefaultView.ToTable(); 
+0

然後......當我點擊我的datagridview的標題時,它會按displaymember排序嗎? – illumi

+0

我編輯它並放置代碼。 – illumi

+0

但仍然...它不工作.. :( – illumi

1

嘗試在DataView包裹DataTable然後,將DataView的Sort屬性設置爲正確的列。您將使用DataView作爲DataSource,而不是DataTable。像這樣:

Dim l_view As New DataView(sDSet.Tables(0)) 
l_view.Sort = "Description" ' ...or... "Description DESC" 
dtg.DataSource = l_view 
+0

將它保存當我編輯它? – illumi

+0

請在此上下文中定義「它」。將排序保存?當您編輯排序? – JDB

+0

我的意思是,當我排序表格(asc/desc)和編輯一些數據,然後當我點擊按鈕...將記錄保存? – illumi

相關問題