FineUI 官方论坛

标题: 工具栏动态添加按钮的事件怎么写 [打印本页]

作者: kαИ啥ル?    时间: 2012-9-8 10:15
标题: 工具栏动态添加按钮的事件怎么写
工具栏中的按钮式根据权限动态添加的,如下:
#region 添加工具栏按钮
        private void AddToolbar()
        {
            ToolbarFill tbff = new ToolbarFill();
            tlr_Btn.Items.Add(tbff);
            DataTable dtToolbar = this.ReturndtToolbar();
            foreach (DataRow dr in dtToolbar.Rows)
            {
                ExtAspNet.Button btn = new ExtAspNet.Button();
                btn.ID = dr["Button_No"].ToString();
                btn.Text = dr["Button_Name"].ToString();
                btn.IconUrl = dr["Button_ico"].ToString();
                btn.AjaxLoadingType = AjaxLoadingType.Mask;
                btn.Click += new EventHandler(btn_Click);
                if (dr["Button_IsRemind"].ToString() == "Y")
                {
                    btn.ConfirmText = "确定要删除选中行记录及其该行相关所有记录么?";
                }
                //btn.Click += new EventHandler(btn_Click));
                tlr_Btn.Items.Add(btn);
            }           
        }
        private DataTable ReturndtToolbar()     //获取工具栏按钮列表
        {
            DataTable dtToolbar = new DataTable();
            Button_Bill.Instance.GetButtonInfo("User",User_Models.User_id);
            return dtToolbar;
        }

但是工具栏添加的按钮事件改怎么写了,求各位大神帮忙,

作者: nboy    时间: 2012-9-8 21:39
function handleCmd(arg) {
    __doPostBack("HandleCmd", arg);
}

-------------------------------------

public void InitToolbar(Toolbar pToolStrip)
        {
            List<CMenu> cmdList = CMenu.FetchCmdItems(Ps.ModuleId);
            int j = 1;
            foreach (CMenu cmd in cmdList)
            {
                if (cmd.Hidden) continue;
                long commId = (long)System.Math.Pow(2, j++);// Convert.ToUInt64(commands[j]["CommandId"]);
                if ((Ps.RoleRight & commId) <= 0) continue;

                string param = Convert.ToString(cmd.Param);

                ExtAspNet.Button item = new ExtAspNet.Button();
                item.EnablePostBack = false;
                item.Text = cmd.Caption;
                if (!string.IsNullOrEmpty(cmd.Image))
                {
                    int icon = 0;
                    if (int.TryParse(cmd.Image, out icon))
                    {
                        item.Icon = (Icon)icon;
                    }
                    else
                    {
                        item.IconUrl = string.Format("res/menu/{0}.png", cmd.Image);
                    }
                }
                item.ID = string.Format("cmd{0}", cmd.Name);

                if (string.IsNullOrEmpty(cmd.Param))
                {
                    if (cmd.Name.ToLower().StartsWith("del"))
                    {
                        item.OnClientClick = "confirmCmd('" + cmd.Name + "','" + cmd.Caption + "');";
                    }
                    else
                    {
                        item.OnClientClick = "handleCmd('" + cmd.Name + "');";
                    }
                }
                else
                {
                    item.OnClientClick = cmd.Param;
                }
                pToolStrip.Items.Add(item);

            }


            pToolStrip.Items.Add(new ExtAspNet.ToolbarSeparator());
            pToolStrip.Items.Add(new ExtAspNet.ToolbarFill());
            ToolbarText txtMsg = new ToolbarText();
            txtMsg.ID = "txtMsg";
            pToolStrip.Items.Add(txtMsg);
        }
作者: 永不放弃1    时间: 2012-9-27 06:52
乍么调用后台的方法
作者: 刘军    时间: 2012-9-28 07:00
给toolbar加个ID,直接toolbat.Items.add(button)就可以了
作者: capfhz    时间: 2012-10-3 08:40
搞定了没有啊,我也用到这个了,望共享一下方法,谢谢
作者: capfhz    时间: 2012-10-3 10:50
代码不要放在If(!IsPostBack)里面就能测试成功,呵呵,
http://www.cnblogs.com/zhuimengke/articles/1283973.html
作者: 不轻言放弃    时间: 2014-10-22 12:08
mark......




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