На самом деле, чтобы прокрутить ответ Джоша, я обнаружил, что первое решение, представленное ниже, проблематично, поскольку другие элементы управления вводом и PostBacks работают неправильно. Поэтому вместо того, чтобы вносить пустые изменения, я выбрал второе решение ниже, чтобы изменить JavaScript, а не имя элемента.
Решение Джоша :
Код-Behind:
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
StringWriter Html = new StringWriter();
HtmlTextWriter Render = new HtmlTextWriter(Html);
base.Render(Render);
writer.Write(Html.ToString()
.Replace("name=\"ctl00$ContentBody$", "name=\"")
.Replace("id=\"ctl00_ContentBody_", "id=\""));
}
Решение 1 , с проблемами PostBack (ПРИМЕЧАНИЕ: я не мог изменить идентификатор, который может решить это решение):
Code-Behind:
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
var html = new StringWriter();
var render = new HtmlTextWriter(html);
base.Render(render);
writer.Write(html.ToString()
.Replace("name=\"ctl00$contentBody$rbl",
"name=\"ctl00_contentBody_rbl"));
}
Решение 2 , чтобы изменить JavaScript:
JavaScript в aspx-файле, где списки радиокнопок используют соглашение 'rbl [name]':
if (!validateRadioButtonList("<% =rblTitle.ClientID %>"))
Code-Behind:
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
var html = new StringWriter();
var render = new HtmlTextWriter(html);
base.Render(render);
writer.Write(html.ToString()
.Replace("validateRadioButtonList(\"ctl00_contentBody_rbl",
"validateRadioButtonList(\"ctl00$contentBody$rbl"));
}