首页 > 解决方案 > 如何为动态控件创建唯一 ID

问题描述

我不断得到这个,没有人能解决这个错误,我正在创建OnClick按钮的动态控件。但出现此错误找到具有相同 ID 的多个控件。FindControl要求控件具有唯一的 ID

protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e)
        {
            string commandText = e.Argument.ToString().Trim();
            string[] splitdata = commandText.Split('&');
            commandText = splitdata[0];
            string controlName = splitdata[1];
            switch (controlName)
            {
                case "RadTextBox":
                    int cnt1 = FindOccurence("rtb") + 1;

                    TableCell txtlblRad = dCBL.GetWebUIControl("RadLabel", "", cnt1, cnt1, "Text Box:", "", 0,"");
                    TableCell txtRad = dCBL.GetWebUIControl("RadTextBox", "", cnt1, cnt1, "", "", 0,"");
                    TableRow txtRow = new TableRow();
                    txtRow.Cells.Add(txtlblRad);
                    txtRow.Cells.Add(txtRad);
                    Table1.Rows.Add(txtRow);
                    break; 
              }
        }

 private void RecreateControls(string ctrlPrefix, string ctrlType)
        {
            string[] ctrls = Request.Form.ToString().Split('&');
            int cnt = FindOccurence(ctrlPrefix);
            if (cnt > 0)
            {
                for (int k = 1; k <= cnt; k++)
                {
                    for (int i = 0; i < ctrls.Length; i++)
                    {
                        if (ctrls[i].Contains(ctrlPrefix + "_" + k.ToString()))
                        {
                             if (ctrlType == "RadTextBox")
                            {

                                TableCell txtlblRad = dCBL.GetWebUIControl("RadLabel", "", k, k, "TextBox:", "", 0,"");
                                TableCell txtRad = dCBL.GetWebUIControl("RadTextBox", "", k, k, "", "", 0,"");
                                TableRow txtRow = new TableRow();
                                txtRow.Cells.Add(txtlblRad);
                                txtRow.Cells.Add(txtRad);
                                Table1.Rows.Add(txtRow);
                            }
                         }
                      }
                  }
            }           
 private int FindOccurence(string substr)
        {
            string reqstr = Request.Form.ToString();
            return (((reqstr.Length - reqstr.Replace(substr, "").Length) / substr.Length) / 2);
        }

标签: c#asp.net

解决方案


推荐阅读