欢迎光临
我们一直在努力

全编辑WebGrid控件LrcGrid(3)——整体结构-ASP教程,数据库相关

建站超值云服务器,限时71元/月

全编辑webgrid控件lrcgrid(3)——整体结构

资源文件:

lrcgrid使用两个引用文件:一个css样式表文件myfsheet.css,一个js脚本库文件updarray_lrc.js。

样式表文件中存放着应用于文本框的样式表类,用于文本框处于不同模式(浏览、编辑、焦点)时的样式

1.隐藏(浏览)样式:

.lrc_txt_hid

{

border-style:none;

width:95;

background:url(images/txt_back.gif);

}

2.编辑样式:

.lrc_txt_show

{

border-style:groove;

background-color:#ffffff;

width:95;

}

3.焦点样式:

.lrc_txt_edit

{

border-width:medium;

border-style:groove;

font-weight:bolder;

background-color:yellow;

width:95;

}

脚本库:包含了控件客户端操作的函数.包括:

将表格行切换到编辑模式的函数:chgeditrow(rowindex,tab)()

将表格列切换到编辑模式的函数:chgedit(colindex,tab)

在客户端构造更新数据库的sql语句: buildsql(tabname)

添加新记录的函数:addrow(tab)

移除新添加行的函数:  removerow(tab) :

将在以后贴出全部代码,如果贴在这里太长了.

lrcgrid类结构:

lrcgrid包含三个类和一个枚举

virtualrecordcount类:记录分页信息

pagechangedeventargs类:继承自eventargs 换页事件

pagerstyle枚举:分页导航条的形式枚举

lrcgrid类:继承自system.web.ui.webcontrols.table,实现inamingcontainer接口。

前几个都比较简单,我把代码直接贴出来。

#region virtualrecordcount class 记录分页信息的类

public class virtualrecordcount

{

public int recordcount;

public int pagecount;

public int recordsinlastpage;

}

#endregion

#region pagerstyle enum 分页导航条的形式枚举

public enum pagerstyle

{

nextprev,

numericpages

}

#endregion

#region pagechangedeventargs class 换页事件类

public class pagechangedeventargs : eventargs

{

public int oldpageindex;

public int newpageindex;

}

#endregion

lrcgrid类就比较复杂了,1000多行吧,大体结构如下(在后面的章节中将陆续贴出全部源码!):

[

toolboxdata("<{0}:lrcgrid runat=server></{0}:lrcgrid>"),

defaultproperty("selsql")

]

public class lrcgrid : system.web.ui.webcontrols.table,inamingcontainer

{

public lrcgrid() : base(){…… }

#region 私有变量

private……

#endregion

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

private……

#endregion

#region 公共属性

/// <summary>

/// 外键指示

/// </summary>

[

category("关键"),

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

]

public string fkcol

{

get{return _fkcol;}

set{_fkcol = value;}

}

……

#endregion

#region 和分页有关的公共成员

#endregion

#region 公共方法 重建

/// <summary>

/// 重新构造控件

/// </summary>

public void rebuild(){……}

#endregion

#region override过程

protected override void createchildcontrols()

{this.rebuild();}

protected override void onprerender(eventargs e){……}

#endregion

#region 排序

private void lk_command(object sender, commandeventargs e){……}

#endregion

#region 创建标题行

private void buildtitle(){……}

#endregion

#region 创建数据行

private void buildcol(){……}

#endregion

#region 创建操作行

private void buildoper(){……}

#endregion

#region 初始化数据集

private void initdataset(){……}

#endregion

#region 判断是否是编辑列

private bool iseditcol(int i){……}

#endregion

#region 判断是否是外键列

private bool isfkcol(int ii){……}

#endregion

#region 返回外键的下拉列表

protected dropdownlist fklist(int i,string selvalue){……}

#endregion

#region 提交数据,更新数据库

private void lrcbtn_sub_click(object sender, eventargs e){……}

#endregion

#region 删除一条

private void lkdelone_command(object sender, commandeventargs e){……}

#endregion

#region 全部删除

private void lkdel_command(object sender, commandeventargs e) {……}

#endregion

#region 构造删除语句

private string builddelsql(int index){……}

#endregion

#region 更新数据库

private int execsql(string sql){……}

#endregion

#region 分页相关操作

private void buildnextprevui(tablecell cell) {……}

private void buildnumericpagesui(tablecell cell)

private void buildcurrentpage(tablecell cell)

……

#endregion

}

因为时间仓促,实现功能为首要目的,代码没经过优化,结构不太好,以后有时间再做吧!

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 全编辑WebGrid控件LrcGrid(3)——整体结构-ASP教程,数据库相关
分享到: 更多 (0)

相关推荐

  • 暂无文章