分享
 
 
 

全编辑WebGrid控件LrcGrid(5)—— 构造函数、变量和属性

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

全编辑WebGrid控件LrcGrid(5)—— 构造函数、变量和属性

LrcGrid从System.Web.UI.WebControls.Table继承,实现INamingContainer接口

元数据属性和构造函数:元数据声明了控件的标签和默认属性,构造函数为控件一些属性指定了默认值.

[

ToolboxData("<{0}:LrcGrid runat=server></{0}:LrcGrid>"),

DefaultProperty("SelSql")

]

public class LrcGrid : System.Web.UI.WebControls.Table,INamingContainer

{

public LrcGrid() : base()

{

Font.Name = "verdana";

Font.Size = FontUnit.Point(8);

BackColor = Color.White;

ForeColor = Color.Black;

BorderStyle = BorderStyle.Outset;

BorderWidth = Unit.Parse("1px");

PagerStyle = PagerStyle.NextPrev;

CurrentPageIndex = 0;

ItemsPerPage = 15;

TotalPages = -1;

IsPager = true;

}

......

声明私有变量:

和分页相关的私有变量

#region 和分页有关的私有变量

// ***********************************************************************

private string CurrentPageText = "<b>第</b> {0} <b>页,共</b> {1}<b>页</b>";

private string NoPageSelectedText = "无选择页.";

private string QueryPageCommandText = "SELECT * FROM " +

"(SELECT TOP {0} * FROM " +

"(SELECT TOP {1} * FROM ({2}) AS t0 ORDER BY {3} {4}) AS t1 " +

"ORDER BY {3} {5}) AS t2 " +

"ORDER BY {3}";

private string QueryCountCommandText = "SELECT COUNT(*) FROM ({0}) AS t0";

// ***********************************************************************

#endregion

和属性有关的私有变量:

char[] chra = {','};

char[] chrb = {'|'};

//private DataSet _ds;

//private DataTable _dt;

private string tabN;

private string _priKey;

private string _editCol = "1";

private string _colsStr = "";

private string _colsStrCN = "";

private string _fkCol = "";

private bool _isSort = true;

private bool _isRowEdit;

private bool _isTabChg = true;

private bool _isDel;

private bool _isAdd;

private string _conn;

private Color _titColor;

控件属性,属性都有注释,不再细述:

/// <summary>

/// 外键指示

/// </summary>

[

Category("关键"),

Description("外键.格式:本表列名|外键列名|要显示的外键列名|外键表名,.....")

]

public string FkCol

{

get{return _fkCol;}

set{_fkCol = value;}

}

/// <summary>

/// 是否显示删除功能

/// </summary>

[

Category("关键"),

Description("是否显示删除功能")

]

public bool IsDel

{

get{return _isDel;}

set{_isDel = value;}

}

/// <summary>

/// 是否显示添加功能

/// </summary>

[

Category("关键"),

Description("是否显示添加功能")

]

public bool IsAdd

{

get{return _isAdd;}

set{_isAdd = value;}

}

/// <summary>

/// 公共属性:显示列名

/// </summary>

[

Category("关键"),

Description("显示列名")

]

public string ColsStrCN

{

get{return _colsStrCN;}

set{_colsStrCN = value;}

}

/// <summary>

/// 主表的表名

/// </summary>

[

Category("关键"),

Description("主表的表名")

]

public string TabN

{

get{return tabN;}

set{tabN = value;}

}

/// <summary>

/// 主表的列名列表

/// </summary>

[

Category("关键"),

Description("主表的列名列表")

]

public string ColsStr

{

get{return _colsStr;}

set{_colsStr = value;}

}

/// <summary>

/// 是否用回车键跳转焦点

/// </summary>

[

Category("关键"),

Description("是否用回车键跳转焦点")

]

public bool IsTabChg

{

get{return _isTabChg;}

set{_isTabChg = value;}

}

/// <summary>

/// 选择SQL语句.注意列名不能用'*'

/// </summary>

[

Category("关键"),

Description("选择SQL语句.注意列名不能用'*'")

]

public string SelSql

{

get{return (string)ViewState["lrcSelSql"];}

set{ViewState["lrcSelSql"] = value;}

}

/// <summary>

/// 主键列名,如有多个请用","隔开

/// </summary>

[

Category("关键"),

Description("主键列名,如有多个请用\",\"隔开")

]

public string PriKey

{

get{return _priKey;}

set{_priKey = value;}

}

/// <summary>

/// 标题行颜色

/// </summary>

[

Category("关键"),

Description("标题行颜色")

]

public Color TitColor

{

get{ return _titColor;}

set{ _titColor = value;}

}

/// <summary>

/// 要进行编辑的列,列名用","隔开,0为不编辑,1为全编辑

/// </summary>

[

Category("关键"),

Description("要进行编辑的列,列名用\",\"隔开,0为不编辑,1为全编辑")

]

public string EditCol

{

get{return _editCol;}

set{_editCol = value;}

}

[

Browsable(false)

]

public string UpdSql

{

get{return ((HtmlInputHidden)(this.FindControl("lrcHid_UpdSql"))).Value;}

}

/// <summary>

/// 是否提供排序功能

/// </summary>

[

Category("关键"),

Description("是否提供排序功能")

]

public bool IsSort

{

get{return _isSort;}

set{_isSort = value;}

}

/// <summary>

/// 可否编辑行

/// </summary>

[

Category("关键"),

Description("可否编辑行")

]

public bool IsRowEdit

{

get{return _isRowEdit;}

set{_isRowEdit = value;}

}

/// <summary>

///要绑定室控件的数据集,可以在进行修改,

/// 但是请与以上各属性对应

/// </summary>

[

Browsable(false)

]

public DataSet DbSet

{

get

{

if(ViewState["lrcDs"] != null)

{

DataSet _dbSet = new DataSet();

System.IO.StringReader sr = new System.IO.StringReader((string)ViewState["lrcDs"]);

_dbSet.ReadXml(sr);

return _dbSet;

}

else

{

return null;

}

}

set

{

if(value != null)

{

System.IO.StringWriter sw = new System.IO.StringWriter();

value.WriteXml(sw);

ViewState["lrcDs"] = sw.ToString();

}

else

{

ViewState["lrcDs"] = null;

}

}

}

/// <summary>

/// 排序字段名

/// 不可在设计时设置

/// </summary>

[

Browsable(false)

]

public string SortField

{

get

{

string s = (string)ViewState["lrcSortField"];

return ((s == null)?String.Empty : s);

}

set

{

ViewState["lrcSortField"] = value;

}

}

/// <summary>

/// 排序类型

/// 不可在设计时设置

/// </summary>

[

Browsable(false)

]

public string SortType

{

get

{

string s = (string)ViewState["lrcSortType"];

return (( s == null)?String.Empty : s);

}

set

{

ViewState["lrcSortType"] = value;

}

}

/// <summary>

/// 数据库连接字符串,默认从 web.config中读取

/// </summary>

[

Category("关键"),

Description("数据库连接字符串")

]

public string Conn

{

get

{

if(_conn == null || _conn == "")

{

return System.Configuration.ConfigurationSettings.AppSettings["Conn"];

}

else

{

return _conn;

}

}

set{ _conn = value;}

}

/// <summary>

/// 列名数组

/// </summary>

[

Browsable(false)

]

public string[] cols

{

get{return _colsStr.Split(chra);}

}

/// <summary>

/// 显示列名数组

/// </summary>

[

Browsable(false)

]

private string[] colsA

{

get{return _colsStrCN.Split(chra);}

}

/// <summary>

/// 主键列名数组

/// </summary>

[

Browsable(false)

]

public string[] _priKeyAr

{

get{return _priKey.Split(chra);}

}

/// <summary>

/// 主键列索引数组

/// </summary>

[

Browsable(false)

]

public string[] PriKeyIndex

{

get

{

string[] index = new string[_priKeyAr.Length];

for(int i=0;i<_priKeyAr.Length;i++)

{

for(int ii=0;ii<cols.Length;ii++)

{

if(cols[ii] == _priKeyAr[i])

index[i] = ii.ToString();

}

}

return index;

}

}

/// <summary>

/// 编辑列名数组

/// </summary>

[

Browsable(false)

]

public string[] _editColAr

{

get{return _editCol.Split(chra);}

}

/// <summary>

/// 编辑列索引数组

/// </summary>

[

Browsable(false)

]

public string[] EditColIndex

{

get

{

string[] index = new string[_editColAr.Length];

if(_editColAr.Length == 1 && _editColAr[0] == "1")

{

index[0] = "LrcAllEdit";

}

else if(_editColAr.Length == 1 && _editColAr[0] == "0")

{

index[0] = "LrcNoEdit";

}

else

{

for(int i=0;i<_editColAr.Length;i++)

{

for(int ii=0;ii<cols.Length;ii++)

{

if(cols[ii] == _editColAr[i])

index[i] = ii.ToString();

}

}

}

return index;

}

}

/// <summary>

/// 外键列二维数组

/// </summary>

[

Browsable(false)

]

public string[,] FkColArray

{

get

{

if(_fkCol == "")

{

return null;

}

else

{

string[] a = _fkCol.Split(chra);

int num = a.Length;

string[,] fkA = new string[num,5];

for(int i=0;i<num;i++)

{

string[] b = a[i].Split(chrb);

string fkIndex = "";

for(int ii=0;ii<cols.Length;ii++)

{

if(cols[ii] == b[0])

{

fkIndex = ii.ToString();

fkA[i,0] = fkIndex;

}

}

for(int j=0;j<4;j++)

{

fkA[i,j+1] = b[j];

}

}

return fkA;

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有