自己写的DataGrid.新增功能“滚动条、固定列头和首列和最后一行、用鼠标调整列宽”。大家都来砸呀……
新增功能:
1、滚动条
2、固定列头、首列和最后一行
3、用鼠标调整列宽
胡乱写的东西,也没有经过仔细测试,不知道对大家有用没有,还请多提宝贵意见,有什么只管砸来就!
唉哟,这么就有鸡蛋飞来啦……
注意事项:
1、使用新增功能2时,要设置其背景色。否则,它就是透明的,就能看到它下面的内容。
2、用鼠标调整时,不要太靠近边线,否则,不容易调整。
**********************************
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Drawing;
namespace SyDG
{
/// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:SyDataGrid runat=server></{0}:SyDataGrid1>")]
public class SyDataGrid : System.Web.UI.WebControls.DataGrid
{
private bool showScroll=true;
[Category("属性"),Description("是否显示滚动条"),DefaultValue(true)]
public bool ShowScroll
{
get
{
return showScroll;
}
set
{
showScroll=value;
}
}
private string scrollClassName="";
[Category("属性"),Description("滚动条样式,也可设置外边框样式"),DefaultValue("")]
public string ScrollClassName
{
get
{
return scrollClassName;
}
set
{
scrollClassName=value;
}
}
private bool fixFoot=false;
[Category("属性"),Description("是否固定显示最后一行在底部"),DefaultValue(false)]
public bool FixFoot
{
get
{
return fixFoot;
}
set
{
fixFoot=value;
}
}
private bool fixFirst=true;
[Category("属性"),Description("是否固定显示首列在左侧"),DefaultValue(true)]
public bool FixFirst
{
get
{
return fixFirst;
}
set
{
fixFirst=value;
}
}
private bool resizeColumn=true;
[Category("属性"),Description("是否允许用鼠标调整列宽"),DefaultValue(true)]
public bool ResizeColumn
{
get
{
return resizeColumn;
}
set
{
resizeColumn=value;
}
}
private Unit tableWidth=new Unit(null);
[Category("属性"),Description("用来显示数据的表格的实际宽度")]
public Unit TableWidth
{
get{
return tableWidth;
}
set{
tableWidth=value;
}
}
private string ColorToString(Color color)
{
if(color.IsEmpty)
return "#ffffff";
else
{
if(color.IsKnownColor)
return color.Name;
else
return "#"+color.Name.Substring(2);
}
}