一个实现自动求和/合并单元格/排序的DataGrid
2008-05-01 03:44
239 查看
以前在asp很难实现代码重用,asp.net很好的解决了这个问题,以下是我写的DataGrid,继承DataGrid,加进了升降序/全并单元格/自动求和功能,原理很简单,但很好的实现的代码重用.
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
namespace SunService
{
/// <summary>
/// Summary description for DataGrid.
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:DataGrid runat=server></{0}:DataGrid>")]
public class DataGrid : System.Web.UI.WebControls.DataGrid
{
private string text;
private SqlDataAdapter adp;
private DataSet ds;
private DataView view;
private string[] arritem;
[Bindable(true),
Category("Appearance"),
DefaultValue("")]
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
/// <summary>
/// protect SortDirection 排序方向
/// </summary>
public string SortDirection
{
get
{
if(ViewState["SortDirection"]==null)
{
return null;
}
else
{
if(ViewState["SortDirection"].ToString()=="")
{
return null;
}
else
{
return ViewState["SortDirection"].ToString();
}
}
}
set
{
ViewState["SortDirection"]=value;
}
}
/// <summary>
/// protect SortField 排序字段
/// </summary>
public string SortField
{
get
{
if(ViewState["SortField"]==null)
{
return null;
}
else
{
if(ViewState["SortField"].ToString()=="")
{
return null;
}
else
{
return ViewState["SortField"].ToString();
}
}
}
set
{
ViewState["SortField"]=value;
}
}
/// <summary>
/// sql 查询字串
/// </summary>
public string selectCommandText
{
get
{
if(ViewState["selectCommandText"]==null)
{
return null;
}
else
{
if(ViewState["selectCommandText"].ToString()=="")
{
return null;
}
else
{
return ViewState["selectCommandText"].ToString();
}
}
}
set
{
ViewState["selectCommandText"]=value;
}
}
/// <summary>
/// 连接字串
/// </summary>
public string selectConnectionString
{
get
{
if(ViewState["selectConnectionString"]==null)
{
return null;
}
else
{
return ViewState["selectConnectionString"].ToString();
}
}
set
{
ViewState["selectConnectionString"]=value;
}
}
public DataTable Bindtable;
public DataGrid()
{
this.Init+=new System.EventHandler(this.DataGrid_Init);
}
private void DataGrid_Init(object sender,EventArgs e)
{
this.Load+= new System.EventHandler(this.DataGrid_Load);
this.SortCommand+=new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid_SortCommand);
this.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid_ItemDataBound);
}
private void DataGrid_Load(object sender,EventArgs e)
{
this.HorizontalAlign=HorizontalAlign.Center;
this.AllowSorting=true;
arritem=new string[256];
ds=new DataSet();
}
/// <summary>
/// GRID绑定
/// </summary>
/// <param name="selectCommandText">查询字串</param>
/// <param name="selectConnectionString">连接字串</param>
public void BindGrid(string selectCommandText,string selectConnectionString)
{
this.selectCommandText=selectCommandText;
this.selectConnectionString=selectConnectionString;
BindGrid();
}
/// <summary>
/// grid绑定
/// </summary>
/// <param name="selectCommandText">查询字串</param>
/// <param name="cn">连接对象</param>
public void BindGrid(string selectCommandText,SqlConnection cn)
{
this.selectCommandText=selectCommandText;
this.selectConnectionString=cn.ConnectionString;
BindGrid();
}
/// <summary>
/// grid绑定,必须先设置 selectCommmandText 及SelectConnectionString 属性
/// </summary>
public void BindGrid()
{
if(this.selectCommandText!=null&&this.selectConnectionString!=null)
{
adp=new SqlDataAdapter(this.selectCommandText,this.selectConnectionString);
adp.Fill(ds,"temp");
view=ds.Tables["temp"].DefaultView;
if(this.SortField!=null)
{
view.Sort=this.SortField+" "+this.SortDirection;
int sortfieldindex=0;
for( int i=0;i<ds.Tables["temp"].Columns.Count;i++)
{
if(ds.Tables["temp"].Columns[i].ColumnName==this.SortField)
{
sortfieldindex=i;
break;
}
}
string SortDirectionImg="▲";
if(this.SortDirection==" DESC")
{
共2页: 上一页 1 [2] 下一页
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
namespace SunService
{
/// <summary>
/// Summary description for DataGrid.
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:DataGrid runat=server></{0}:DataGrid>")]
public class DataGrid : System.Web.UI.WebControls.DataGrid
{
private string text;
private SqlDataAdapter adp;
private DataSet ds;
private DataView view;
private string[] arritem;
[Bindable(true),
Category("Appearance"),
DefaultValue("")]
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
/// <summary>
/// protect SortDirection 排序方向
/// </summary>
public string SortDirection
{
get
{
if(ViewState["SortDirection"]==null)
{
return null;
}
else
{
if(ViewState["SortDirection"].ToString()=="")
{
return null;
}
else
{
return ViewState["SortDirection"].ToString();
}
}
}
set
{
ViewState["SortDirection"]=value;
}
}
/// <summary>
/// protect SortField 排序字段
/// </summary>
public string SortField
{
get
{
if(ViewState["SortField"]==null)
{
return null;
}
else
{
if(ViewState["SortField"].ToString()=="")
{
return null;
}
else
{
return ViewState["SortField"].ToString();
}
}
}
set
{
ViewState["SortField"]=value;
}
}
/// <summary>
/// sql 查询字串
/// </summary>
public string selectCommandText
{
get
{
if(ViewState["selectCommandText"]==null)
{
return null;
}
else
{
if(ViewState["selectCommandText"].ToString()=="")
{
return null;
}
else
{
return ViewState["selectCommandText"].ToString();
}
}
}
set
{
ViewState["selectCommandText"]=value;
}
}
/// <summary>
/// 连接字串
/// </summary>
public string selectConnectionString
{
get
{
if(ViewState["selectConnectionString"]==null)
{
return null;
}
else
{
return ViewState["selectConnectionString"].ToString();
}
}
set
{
ViewState["selectConnectionString"]=value;
}
}
public DataTable Bindtable;
public DataGrid()
{
this.Init+=new System.EventHandler(this.DataGrid_Init);
}
private void DataGrid_Init(object sender,EventArgs e)
{
this.Load+= new System.EventHandler(this.DataGrid_Load);
this.SortCommand+=new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid_SortCommand);
this.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid_ItemDataBound);
}
private void DataGrid_Load(object sender,EventArgs e)
{
this.HorizontalAlign=HorizontalAlign.Center;
this.AllowSorting=true;
arritem=new string[256];
ds=new DataSet();
}
/// <summary>
/// GRID绑定
/// </summary>
/// <param name="selectCommandText">查询字串</param>
/// <param name="selectConnectionString">连接字串</param>
public void BindGrid(string selectCommandText,string selectConnectionString)
{
this.selectCommandText=selectCommandText;
this.selectConnectionString=selectConnectionString;
BindGrid();
}
/// <summary>
/// grid绑定
/// </summary>
/// <param name="selectCommandText">查询字串</param>
/// <param name="cn">连接对象</param>
public void BindGrid(string selectCommandText,SqlConnection cn)
{
this.selectCommandText=selectCommandText;
this.selectConnectionString=cn.ConnectionString;
BindGrid();
}
/// <summary>
/// grid绑定,必须先设置 selectCommmandText 及SelectConnectionString 属性
/// </summary>
public void BindGrid()
{
if(this.selectCommandText!=null&&this.selectConnectionString!=null)
{
adp=new SqlDataAdapter(this.selectCommandText,this.selectConnectionString);
adp.Fill(ds,"temp");
view=ds.Tables["temp"].DefaultView;
if(this.SortField!=null)
{
view.Sort=this.SortField+" "+this.SortDirection;
int sortfieldindex=0;
for( int i=0;i<ds.Tables["temp"].Columns.Count;i++)
{
if(ds.Tables["temp"].Columns[i].ColumnName==this.SortField)
{
sortfieldindex=i;
break;
}
}
string SortDirectionImg="▲";
if(this.SortDirection==" DESC")
{
共2页: 上一页 1 [2] 下一页
相关文章推荐
- 一个实现自动求和/合并单元格/排序的DataGrid
- 一个实现自动求和、合并单元格、排序的DataGrid(转)
- 一个实现自动求和/合并单元格/排序的DataGrid
- DataGrid自动求和、合并单元格、排序
- DataGrid自动求和、合并单元格、排序
- DataGrid自动求和、合并单元格、排序
- DataGrid自动求和、合并单元格、排序
- GridView控件中自动求和、合并单元格和排序
- DataGrid排序错误:必须至少有一个对象实现
- DataGrid排序错误:必须至少有一个对象实现
- DataGrid中记录实现序号自动排序
- 实现一个蛋疼的order排序功能,记录一下
- 实现一个自动设外间距的Grid面板
- 用程序来控制一个网页,实现自动输入等操作
- Android 一个相对完整的自动升级功能实现代码
- Android项目类似淘宝 电商 搜索功能,监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录的实现
- springboot源码解析:自己实现一个springboot自动配置
- 实现一个简单的菜单程序,运行时显示"Menu:A(dd) D(elete) S(ort) Q(uit),Select one: "提示用户输入。输入A、D、S时分别提示"数据已经增加、删除、排序"
- 实现了选择、跳页、排序、导出EXCEL等功能的自定义DataGrid(原码)
- 一个JS实现表格可排序