FineUI 官方论坛

标题: btMenu 的动态增加问题 [打印本页]

作者: bluer    时间: 2013-7-4 08:46
标题: btMenu 的动态增加问题
问题:
为什么运行结果,一定要先选择一下第一个菜单项,再选后面的(第二或是第三项 才有效),才会执行那个 dept_CheckedChanged  呢?
例如点了第二项,再点第三项,就没有效果了。奇怪。

前台代码:
<xageManager ID="ageManager1" runat="server" AutoSizePanelID="anen1" />
            <xabel ID="lbl1" runat="server" Label="Label" Text="Label"></xabel>
            <x:Toolbar ID="Toolbar1" runat="server">
                <Items>
                    <x:Button EnablePostBack="false" ID="btDept" Text="选择区域..." runat="server">
                        <Menu ID="Menu1" runat="server">
                            <x:MenuCheckBox Text="baidu.com" ID="MenuCheckBox1" AutoPostBack="true"
                                Checked="true" runat="server" GroupName="deptName">
                            </x:MenuCheckBox>
                        </Menu>
                    </x:Button>
                </Items>
            </x:Toolbar>


后台代码:
protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            string sql = "select top 2 id,deptName from sysDept where id in(34,35,36,37,38,59,45) ";
            DataSet ds = SqlHelper.Query(sql);
            FineUI.Menu m = btDept.FindControl("Menu1") as FineUI.Menu;
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                FineUI.MenuCheckBox mc = new FineUI.MenuCheckBox();
                mc.ID = "mm" + dr[0].ToString();
                mc.Text = dr[1].ToString().Trim();
                mc.GroupName = "deptName";
                mc.AutoPostBack = true;
                mc.CheckedChanged += new EventHandler(dept_CheckedChanged);
                //             mc.Checked = true;
                m.Items.Add(mc);
            }
        }
    }
    protected void dept_CheckedChanged(object sender, EventArgs e)
    {
        lbl1.Text = lbl1.Text + "u";
    }

作者: bluer    时间: 2013-7-4 09:01
发现问题,创建控件的代码放到 Page_Init  就可以了。
这是什么原因?
作者: Lisa    时间: 2013-7-4 11:46
动态创建控件的代码就是要放在Page_Init中的,这样页面每次加载都会执行,而且是最先执行。三石老大还有一篇教程专门讲这个的。
我看的似懂非懂,对内部更深的机制还不是很了解。
作者: 亮亮胖胖    时间: 2013-7-7 12:14
还是Page的生命周期没有搞懂啊




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4