很急的问题,解决立马给分,在线等

lh1979 2006-10-24 11:56:30
我在窗体上放置了一个table控件,在table控件中创建了tablerow,在tablerow中创建料tablecell,然后在tablecell中创建了checkbox,结果checkbox显示在窗体上,但是我用别的过程循环table控件的时候结果,table控件上创建的都没有了,table.rows.count==0,这个是什么原因
结果就是想循环找到checkbox的状态,现在连控件都找不到了
...全文
90 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lh1979 2006-10-24
  • 打赏
  • 举报
回复
解决了,多谢各位大哥,
lh1979 2006-10-24
  • 打赏
  • 举报
回复
string str="select * from info_page where rtrim(parent_name)='0' ";
DataTable t1,t2;

sys.DB_Class dc=new sys.DB_Class();
t1=dc.DB_Class_getDataTable(str);

for (int i=0;i<=t1.Rows.Count-1;i++)//每一行
{
System.Web.UI.WebControls.TableRow table_row=new TableRow();
table1.Controls.Add(table_row);
table_row.EnableViewState=true;
System.Web.UI.WebControls.TableCell table_cell1=new TableCell();
table_row.Cells.Add(table_cell1);
table_cell1.EnableViewState=true;

System.Web.UI.WebControls.Label label11=new Label();
table_cell1.Controls.Add(label11);
label11.Text=t1.Rows[i]["node_name"].ToString();

str="select * from info_page where parent_id="+t1.Rows[i]["parent_id"].ToString()+" and parent_name<>'0'";
t2=dc.DB_Class_getDataTable(str);
if (t2.Rows.Count==0 )
continue;
int kk=t2.Rows.Count;

System.Web.UI.WebControls.TableRow table_row1=new TableRow();
table1.Controls.Add(table_row1);
table_row1.EnableViewState=true;

for (int j=0;j<=kk-1;j++)
{

System.Web.UI.WebControls.TableCell table_cell2=new TableCell();
table_row1.Cells.Add(table_cell2);
table_cell2.EnableViewState=true;
System.Web.UI.WebControls.CheckBox cb1=new CheckBox();
cb1.Text=t2.Rows[j]["node_name"].ToString();
cb1.ID="cb"+t2.Rows[j]["pageno"].ToString();
table_cell2.Controls.Add(cb1);

}

}

str="select owner_right from info_user_right,info_oper where oper=operno and oper='"+oper+"'";
t1=dc.DB_Class_getDataTable(str);


if (t1.Rows.Count>0)
{
string limit=t1.Rows[0]["owner_right"].ToString();
for (int i=0;i<=table1.Rows.Count-1;i++)
for(int j=0;j<=table1.Rows[i].Cells.Count-1;j++)
{
for (int k=0;k<=limit.Length-1;k++)
if (limit.Substring(k,1).ToString()=="1")
{
System.Web.UI.WebControls.CheckBox cb;
cb=(System.Web.UI.WebControls.CheckBox)table1.Rows[i].Cells[j].FindControl("cb"+(k+1).ToString());
if (cb!=null)
{
cb.Checked=true;
}
}

}
}



这个是我的创建的代码
aafshzj 2006-10-24
  • 打赏
  • 举报
回复
因为你的控件是动态创建的,加!Page.ispostback就意味着只在用户通过url直接访问页面时才调用创建代码,在该页面点击等操作回发时,你就不会重新创建了。要知道页面对象是每次Request调用才生成的,如果你某次调用不调用动态生成控件的代码,它就不会再次在页面上出现。
patrickpan 2006-10-24
  • 打赏
  • 举报
回复
去掉!Page.ispostback
WDFrog 2006-10-24
  • 打赏
  • 举报
回复
From_load(){
你的你的控件生存代码
}
//
Form_load(){
if(!ispostback){ //这样写就会错的,
你的控件生存代码
}
}

xingyaohua 2006-10-24
  • 打赏
  • 举报
回复
贴代码
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-10-24 11:56
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。