我有这个代码将新的TextBox添加到我的UserControl:
/// <summary>
/// Create a new TextBox
/// </summary>
/// <returns>a new TextBox with the right name attribute</returns>
private TextBox createTextBox()
{
TextBox textbox = new TextBox();
textbox.Attributes["name"] = name + "_" + (textBoxList.Count + 1);
textbox.ID = name + "_" + (textBoxList.Count + 1);
return textbox;
}
输出HTML上的更改了此TextBox的“name”属性,并添加了UserControl名称...
<input name="multipleTextBox$test_1" type="text" id="multipleTextBox_test_1">
我怎样才能避免添加名称的“multiplartTextBox $”部分?这很重要,因为我需要我的独特名称才是正确的......
答案 0 :(得分:0)
默认你不能。这就是ASP.NET和控件名称生成的工作方式,尤其是在用户控件中添加它时。这就是ASP.NET与客户端控件和命名冲突的区别。这很正常。虽然你为什么对你很重要?为什么你需要在运行时访问元素?如果您需要访问它,只需用户document.getElementById('multipleTextBox $ test_xxx'):)
你可以将ClientIDMode设置为静态但是我建议不要这样做,除非你有充分的理由这样做 - 这将是ID,而不是名称
答案 1 :(得分:0)
将TextBox.ClientIDMode
设置为Static
。
TextBox textbox = new TextBox();
textbox.ClientIDMode = ClientIDMode.Static;
答案 2 :(得分:0)