动态生成WebControls.Table的换行
来源:互联网 发布:steam的mac游戏推荐 编辑:程序博客网 时间:2024/05/18 01:35
昨天做了一个用户权限的列表时,遇到了一个事情,生成的表的单元格个数超过每一行的个数时,
需要换行.因为表格是根据数据库的内容自动生成,就需要有一段代码来控制换行.本来也不算什
么大问题,结果搞了半天,钻到死胡同了.最后还是同事指点,才恍然明白;特此记录:
private void GetFunc(int ModuleId)
{
int tableColumn=5;
int i=0;
Table t=new Table();
TableRow r=new TableRow();
using(SqlDataReader dr=Module.GetFuncByModule(ModuleId))
{
while(dr.Read())
{
if(i%tableColumn!=0 || i==0)
{
CheckBox chkA=new CheckBox();
string func_id=dr["func_id"].ToString();
string funcName=dr["funcName"].ToString();
chkA.Text=funcName;
chkA.ID=func_id.ToString();
if(sd.Count>0)
{
string v=sd[func_id];
if(v=="True")
{
chkA.Checked=true;
}
if(v=="False")
{
chkA.Checked=false;
}
}
if(selectAccId!="")
{
chkA.Attributes.Add("onclick","checkPermiss(this,'"+selectAccId+"');");
}
TableCell c=new TableCell();
chkA.CssClass="permiss_funcName";
//c.CssClass="permiss_td";
c.Controls.Add(chkA);
r.Cells.Add(c);
}
else
{
r=new TableRow(); //XXXXXX赋值XXXXX
}
i++;
if(i%tableColumn==0 && i!=0)
{
t.Rows.Add(r);
}
}
t.Rows.Add(r);
}
}
仔细想想,主要是对TableRow的赋值的地方搞糊涂了,我想如果再次赋值,那原先的那个对象不久
成空悬的了,就像空悬指针一样,所以我连想都没敢想再次赋值.其实r是对象的引用,不是对象的指
针,看来c++的引用概念没明白啊.
另外这个结构让我想起来递归的实现.看来算法还是很重要啊.
- 动态生成WebControls.Table的换行
- asp.net中动态生成 Microsoft.Web.UI.WebControls.TreeView
- Extjs动态生成gridPannel(动态的列,动态的table)
- 动态创建表格,动态换行 生成新的TR
- javascript动态生成table
- 动态生成table
- 动态生成table列表
- 动态生成Table、DataSet
- 动态生成table
- 动态生成Table
- Jquery动态生成table
- jsp动态生成table
- ajax动态生成table
- ajax动态生成table
- JS动态生成Table
- 动态生成table
- ajax动态生成table
- Microsoft.Web.UI.WebControls生成Treeview的简单方法
- Asp程序员的薪水,日子过得也太快了!
- Java相关术语大全
- 3D游戏之父--John Carmack连载系列(四)
- 变更请求流程和变更请求表
- 传感器网络
- 动态生成WebControls.Table的换行
- 3D游戏之父--John Carmack连载系列(五)
- 7-19
- 3D游戏之父--John Carmack连载系列(六)
- DOOM 3设计开发人员全家福
- Windows & Linux 相同功能软件对应列表(转)
- 一些有用资源
- Ubuntu(Dapper)下Ruby/Rails及配套RI文档系统安装手记
- WebSphere MQ如何显示一个进程打开的对象的名称?