我发现我可以在浏览器中使用 javascript 将 name 属性设置为等于 id。这可以使用 jquery 轻松完成,但如果您不使用 jquery,则另一种选择是遍历输入元素和其他可能回发的元素。
我认为唯一的缺点是您必须确保只更改动态创建的控件,而不是点击任何 runat="server" ASP 控件,因为这些控件使用 name 属性来分配它们的值。
以下代码是我使用的 javascript:
function SetControlNamesToId() {
var inputObjects = document.getElementsByTagName('input');
for (i = 0; i < inputObjects.length; i++) {
if (inputObjects[i].type == 'checkbox' ||
inputObjects[i].type == 'radio' ||
inputObjects[i].type == 'text' ||
inputObjects[i].type == 'hidden') {
SetNameToId(inputObjects[i]);
}
}
var selectObjects = document.getElementsByTagName('select');
for (i = 0; i < selectObjects.length; i++) {
SetNameToId(selectObjects[i]);
}
var textAreaObjects = document.getElementsByTagName('textarea');
for (i = 0; i < textAreaObjects.length; i++) {
SetNameToId(textAreaObjects[i]);
}
}
function SetNameToId(control)
{
if (control.id && control.id != "") {
control.setAttribute("name", control.id);
}
}