本文实例讲述了Winform中GridView分组排序功能实现方法。分享给大家供大家参考。具体实现方法如下:
一、问题:
由于客户最近要扩充公司的业务,之前基于Winform+web开发混合式的系统已经不能满足他们的需求,需要从新对系统进行分区处理。
考虑到系统模块里面用到的GridView视图比较多,我就结合了DevExpress第三方GridControl简单的写了个Demo,对数据进行分组排序。
二、实现方法:
主程序源码:
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraGrid.Columns;
using DevExpress.Data;
namespace GridViewSortTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
InitLoad();
#region 分组排序代码
GridColumnSortInfo[] sortInfo = {
new GridColumnSortInfo(gdvSort.Columns["GET_YEAR"], ColumnSortOrder.Ascending),
new GridColumnSortInfo(gdvSort.Columns["ID"], ColumnSortOrder.Descending),
};
gdvSort.SortInfo.ClearAndAddRange(sortInfo,1);
#endregion
}
/// <summary>
/// 初始化GirdControl数据
/// </summary>
private void InitLoad()
{
gdcSort.DataSource= DBHelp.GetTable(string.Format(@"SELECT ID,NAME,GET_YEAR,
URL_ADRRESS FROM TB_SORT_TEST"));
}
/// <summary>
/// GirdView单击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gdvSort_Click(object sender, EventArgs e)
{
if (gdvSort.FocusedColumn.FieldName.Equals(@"NAME") && gdvSort.GetFocusedRowCellValue("NAME") != null)
{
string url = gdvSort.GetFocusedRowCellValue("URL_ADRRESS").ToString()+
gdvSort.GetFocusedRowCellValue("GET_YEAR").ToString() +
MonthToString(int.Parse(gdvSort.GetFocusedRowCellValue("ID").ToString())) +
gdvSort.GetFocusedRowCellValue("NAME").ToString()+".html";
webBrowser.Navigate(url);
}
}
/// <summary>
/// 月份转换成字符串
/// </summary>
/// <param name="month"></param>
/// <returns></returns>
private string MonthToString(int month)
{
if (month >= 1 && month <= 9)
return "0" + month.ToString();
else
return month.ToString();
}
}
}</div>
DBHelp类源码:
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace GridViewSortTest
{
public class DBHelp
{
//连接字符串
static string strConn =@"Server=.\SQLEXPRESS; Database= SysBusiness; User Id=sa; Password=123456;Trusted_Connection = False ";
#region 执行查询,返回DataTable对象-----------------------
public static DataTable GetTable(string strSQL)
{
return GetTable(strSQL, null);
}
public static DataTable GetTable(string strSQL, SqlParameter[] pas)
{
return GetTable(strSQL, pas, CommandType.Text);
}
/// <summary>
/// 执行查询,返回DataTable对象
/// </summary>