c# - 如何为动态控件创建唯一 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);
}
解决方案
推荐阅读
- jquery - jquery-ui 1.11.0 版是否支持对话框?
- html - 我需要创建一个比我的普通表更难的表
- javascript - Vue-CLI 3:如何在 webpack 包中包含 /src 目录之外的 LESS 文件?
- python - 使用 Sympy 求解方程时遇到问题?想法?
- c# - 如何在 Entity Framework 6 Code First 中将 On Delete Set Null 设置为 MySQL?
- angular - 如何在 cdkDropList 中禁用一项拖动和排序
- python - 从 xgb.train() 获取概率
- html - 如何创建一个没有固定高度的可滚动正文的表格
- php - 如何通过表单仅更新实体的几列
- html - 需要什么才能在网站上播放 Youtuve 视频