日期:2014-05-19  浏览次数:20456 次

[高分求救]关于button提交过程和页面中Controls集合的问题
环境:.net   framework   2.0
问题描述:在aspx页中放了一个PlaceHolder,ID为phResearch,在aspx.cs中使用   phResearch.Controls.Add(control   child)的方法来填加一系列的control到前台,比如RadioButtonList.同时此时可以读到phResearch.Controls.Count=18;但我在button的提交事件方法中,再来用phResearch.Controls.Count的时候,就成了0;是不是因为button提交的时候引发了其他的一些事件?这个问题应该如何解决,麻烦知道的说一下,不甚感谢.

------解决方案--------------------
button 提交后
首先会执行 page_load
然后才是 button_click 本身
所以
建议你检查一下 是不是 page_load 里有什么操作
让 control 没了
还是你的 control 是在 page_load 添加 但是有 if (!IsPostBack)
如果是
你 button 点击后 是 PostBack
所以里面的添加的 control 的方法没法执行
自然取出来时 0
------解决方案--------------------
提交后又引发了page_load等于页面再载入了一次

------解决方案--------------------
protected override OnInit(object sender ,EventArgs arg)
{Label lblTemp = new Label();
lblTemp.Text = " <tr> <td class= 'text-black '> " + ProblemNo.ToString() + ".&nbsp; " + dr[ "ProblemContent "].ToString() + " </td> </tr> <tr> <td class= 'text-lb-k '> ";
phResearch.Controls.Add(lblTemp);

RadioButtonList rblTemp = new RadioButtonList();
rblTemp.Items.Add(new ListItem( "sample1 ", "value1 ");
rblTemp.Items.Add(new ListItem( "sample2 ", "value2 ");
phResearch.Controls.Add(rblTemp);
lblProblemsInfo.Text = phResearch.Controls.Count;
//这里是为了测试phResearch.Controls.Count的值,为2,用GetType()方法看了下,分别是Label和RadioButtonList.

}