我想按未綁定到任何數據庫字段的模板列對Gridview行進行排序。這個模板coulmn只是一個標籤,其中的文本是我在代碼中設置的,取決於數據綁定的不同列中的值。所以我堅持如何設置sortExpression,因爲它沒有鏈接到列。如何按未綁定的Template列對Gridview行進行排序
1
A
回答
0
您的預期行爲是可能的。這裏是你需要做的:
1)訂閱GridView的排序事件。
2)添加SortExpression到你的創建列,如「MyOwnSortExpression」。 2)在事件處理程序中,您可以通過EventArgs訪問SortExpression。 e.SortExpression
3)創建一個在GridView上執行DataBinding的方法。 該方法有2個參數。第一個是應該排序的列的名稱,第二個是Sortdirection。 (在點擊相同的列兩次後切換排列方向會很好) 4)添加只在所需Columsn上手動排序的代碼開關。
例:
protected void gv_Sorting(object sender, GridViewSortEventArgs e)
{
if(e.SortExpression == MyOwnSortExpression)
{
UpdateDataBinding(e.SortExpression, e.SortDirection);
e.Cancel = true;
return;
}
}
protected void UpdateDataBinding(String sortexpression, SortDirection direction)
{
switch(sortExpression)
{
case "MyOwnSortExpression":
var myData = GetYouSpecificDataFromDB();
if(direction == SortDirection.Ascending)
{
var = var.OrderBy(x => string.format("jkalsd{0}", x.TheSpecifiedDBColumn)) // or any desired linq expression);
}
else
{
var = var.OrderByDescending(x => string.format("jkalsd{0}", x.TheSpecifiedDBColumn)) // or any desired linq expression);
}
this.gv.DataSource = var.ToList();
this.gv.DataBind();
break;
}
}
可以爲sortdirection和排序列啓用的反覆機制添加緩存。
您的解決方案可能會有所不同,基於那種數據綁定你正在做的(LINQ到SQL,ObjectDataSource控件,...)
此鏈接http://blogs.sftsrc.com/stuart/archive/2009/02/19/130.aspx還提供了一個很好的類。如果您可以創建一個Wrapperclass,並且包含要顯示的所有值,則效果最佳。我建議的解決方案不需要包裝類,但它缺乏靈活性。
相關問題
- 1. 如何按日期對DataGridView列(綁定到BindingSource)進行排序?
- 2. 如何按timedate列對gridview列進行排序?
- 3. 用綁定字段進行Gridview排序
- 4. 如何對GridView進行分組排序?
- 5. 如何對GridView進行排序?
- 6. 如何按行中的自定義標籤對gridview進行排序
- 7. 如何按日期時間列對整個gridview行進行排序?
- 8. 如何按給定順序對列表進行排序?
- 9. 如何對數據綁定DataGridView列進行排序?
- 10. 對未確定的列數進行排序/排序(LINQ \ Entity Framework)
- 11. 如何按特定值對Scala中的列表進行排序
- 12. 按一列對多列進行排序
- 13. 按兩列對列表進行排序
- 14. 如何按包含可爲空的整數的列對gridview進行排序?
- 15. 在DataBound之後對GridView中的特定列進行排序
- 16. 按自定義列表排序對DataTable進行排序
- 17. 以編程方式對未綁定的datagridview進行排序
- 18. 對未綁定進行排序可比較的斯卡拉
- 19. 如何僅對gridview中顯示的行進行排序?
- 20. 如何按值對TreeSet進行排序?
- 21. ASP.NET:如何允許用戶對gridview列進行重新排序?
- 22. 如何在gridview中對日期列進行排序?
- 23. 如何按頻率對Sql列進行排序並選擇行
- 24. 如何按多列對mysql行進行排序?
- 25. 如何按一列進行分組並對另一列的值進行排序?
- 26. 如何按數據庫中的列對列進行排序?
- 27. 如何按不同的順序對每列進行排序?
- 28. 按給定矢量對行和列進行排序
- 29. 如何對綁定的ObjectDataProvider集合進行排序?
- 30. 如何使用來自NSTableColumn的綁定對NSArrayController進行排序?