• 后台动态添加控件后,脚本得不到控件的ID的解决方法


    后台动态添加控件后,脚本无法得到此控件的ID,需要通过以上方法获取

    后台代码:

        public void BindNotMainCateGory()
            {
                DataSet ds = LifeExpress.Components.POICategory.GetChildCategoryDataSet(0);
                NotNotMainCateGoryIDList.Text = "";//输入框置空

                 for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {

                    CheckBox wps = new CheckBox();
                    wps.ID = "chk" + ds.Tables[0].Rows[i]["id"].ToString();
                    wps.ToolTip = ds.Tables[0].Rows[i]["id"].ToString();
                    wps.Text = ds.Tables[0].Rows[i]["DisplayName"].ToString();
                    panelNotMainCateGory.Controls.Add(wps);  //panelNotMainCateGory是panel控件
             
                    CheckBoxList chklist = new CheckBoxList();
                    chklist.RepeatDirection = RepeatDirection.Horizontal;
                    chklist.ID = wps.ToolTip;              
                    chklist.RepeatColumns = 4;
                    DataSet ds1 = LifeExpress.Components.POICategory.GetChildCategoryDataSet(Convert.ToInt32(wps.ToolTip.Trim()));
                    if (ds1.Tables[0].Rows.Count > 0)
                    {
                        chklist.DataSource = ds1;
                        chklist.DataTextField = "DisplayName";
                        chklist.DataValueField = "id";
                        chklist.DataBind();
                        if (!PanelNotMainChildCateGory.Controls.Contains(chklist))
                        {
                            PanelNotMainChildCateGory.Controls.Add(chklist);//PanelNotMainChildCateGory是panel控件

                        }
                    }

                      //通过鼠标移动到控件wps上,显示相应chklist控件,隐藏其它的checkboxlist控件

                    wps.Attributes.Add("onMouseOver", "OnMouseUpNotMainCateGory(" + chklist.ClientID + ")");
                    NotNotMainCateGoryIDList.Text = NotNotMainCateGoryIDList.Text + chklist.ClientID + ",";

                    if (i == 0)
                    {
                        wps.Checked = true;
                        //chklist.Visible = true;
                        chklist.Style.Add("display", "block");//此否要用style控件显示与隐藏,不用vislble.
                    }
                    else
                    {
                        //chklist.Visible = false;
                        chklist.Style.Add("display", "none");
                    }
                }
                if (NotNotMainCateGoryIDList.Text.Length > 0)
                {
                    NotNotMainCateGoryIDList.Text = NotNotMainCateGoryIDList.Text.Substring(0, NotNotMainCateGoryIDList.Text.Length - 1);
                }
            }


    前台代码

    <script>

     function OnMouseUpNotMainCateGory(id) 
     {

          //id.style.display="block";需要显示的控件
           //NotNotMainCateGoryIDList是一个文件框,存放ID列表。 NotNotMainCateGoryIDList是拖拉出来的控件,可以通过document.getElementById('<%=NotNotMainCateGoryIDList.ClientID %>');得到控件
           var IDList=document.getElementById('<%=NotNotMainCateGoryIDList.ClientID %>');
            aArr=IDList.value.split(',');             
            for(i=0;i<aArr.length;i++)
            {            
                if(document.getElementById(aArr[i])!=id)
                {
                document.getElementById(aArr[i]).style.display="none"; 
                }
                else           
                {
                 document.getElementById(aArr[i]).style.display="block";
                }
            }
     }

        </script>

  • 相关阅读:
    前进的道路,不要往后看——记得24生日
    【剑指offer】:Q44:直扑克
    手游client思考框架
    Craig可能是个冲浪爱好者
    VMware vSphere服务器虚拟化实验六 vCenter Server 添加储存
    OSX: 使用命令行对FileVault2分区恢复
    让工程师爱上CMMI,实现管理于无形 --- 中标软件CMMI L5之路 (1/2)
    让工程师爱上CMM,实现管理于无形 --- 中标软件CMMI L5之路 (2/2)
    HTML+CSS实例——漂亮的查询部件(一)
    jbpm部署流程定义到MySql报乱码解决方案
  • 原文地址:https://www.cnblogs.com/weichuo/p/1307332.html
Copyright © 2020-2023  润新知