总结(一下uc1为需要动态加载的控件)

1. 通常是放在GridView之类控件的模板中,所以事件执行顺序是在页面OnLoad之后开始控件自己的Init和Load。

2. 通常这个需要动态加载的控件很可能是一个用户控件Usercontrol。

3. 通常控件的初始和数据绑定是在自己的Load中做的,所以页面的onLoad无法找到uc1,所以uc1自己的onload事件绑定数据时没有需要的必要参数。

4. 根据以上3条情况,你可以在GridView的Edit相关事件或者把控件显示出来的相关事件中对控件必要属性赋值,而不是在页面的load事件。

5. 最重要的一点就是以下这个例子:

                foreach (ListItem li in RadioButtonListJobs.Items)
                {
                    if (li.Value == this.SelectedJob.ID)
                    {
                        li.Selected = true;
                        break;
                    }
                }

这样的代码如果不是动态加载就OK,而li.Seleted赋值在动态加载的时候由于复杂的加载控件的"追赶论" ,

这个属性赋值后所产生的对RadioButtonList.SelectedIndex或者实际效果是无效的,通过测试需要用这样的代码:

 

                for (int i = 0; i < RadioButtonListJobs.Items.Count; i++)
                {
                    if (RadioButtonListJobs.Items[i].Value == this.SelectedJob.ID)
                    {
                        RadioButtonListJobs.SelectedIndex = i;
                        break;
                    }
                }

写成这样,选中效果才出来。

6. 以上是个人在自己项目环境下的总结和理解。

posted on 2012-07-19 14:51  熵星尘  阅读(501)  评论(1编辑  收藏  举报