在 javascript 中的字符串中连接 for 循环变量后 Default.aspx.designer.cs 出错
Error on Default.aspx.designer.cs after concatenating a for loop variable in a string in javascript
我有一个 asp.net 网络表单 Default.aspx。
在 javascript 中我构建了这个函数:
function removeAndAddPermisionsRows(table, accesses) {
deleteRows(table);
var accessesLen = accesses.length;
var row = '<tr>';
for (var i = 0; i < accessesLen; i++) {
if (i != 0 && i % 2 == 0) {
row = row + '</tr><tr>';
}
row = row +
' <td class="leftMarginSectionItem">' +
' <asp:Image ID="PermisionImgSectionItem" runat="server" Width="32px" Height="32px" ImageUrl="~/Images/checkmark32.png" />' +
' </td>' +
' <td>' +
' <div>' +
' <h3 id="PermisionSectionItem"><asp:Label runat="server" ID="lblPermission" Text=""></asp:Label></h3>' +
' <asp:Label runat="server" ID="lblPermissionId" Text=""></asp:Label>' +
' </div>' +
' <p id="permisionRect" class="roundedCornersRectangleSectionItemsBackground" />' +
' </td>';
}
if (accessesLen % 2 == 0) {
row = row + '</tr>';
}
else {
row = row + '<td></td><td></td></tr>';
}
table.find('tbody').append(row);
}
好的,这里没问题,这段代码可以编译。
但我需要将循环中的“i”变量连接到一些字符串,因此如果我在循环中执行以下操作,例如我希望 ID PermisionImgSelectionItem 为 PermisionImgSelectionItem0、PermisionImgSelectionItem1 等等,其余 ID 相同:
row = row +
' <td class="leftMarginSectionItem">' +
' <asp:Image ID="PermisionImgSectionItem'+ i +'" runat="server" Width="32px" Height="32px" ImageUrl="~/Images/checkmark32.png" />' +
' </td>' +
' <td>' +
' <div>' +
' <h3 id="PermisionSectionItem"><asp:Label runat="server" ID="lblPermission" Text=""></asp:Label></h3>' +
' <asp:Label runat="server" ID="lblPermissionId" Text=""></asp:Label>' +
' </div>' +
' <p id="permisionRect" class="roundedCornersRectangleSectionItemsBackground" />' +
' </td>';
当我将 i 变量连接到字符串时,我的代码无法编译,vs2019 说自动生成的 Default.aspx.designer.cs 中存在错误,我不知道,但它也连接了变量“i”到一些控件的名称。
发生了什么事?
问题是由 asp:Label 元素引起的。在字符串和循环变量中连接此元素会导致此错误!用 html 标签替换 asp:Label 即可解决问题。
我有一个 asp.net 网络表单 Default.aspx。
在 javascript 中我构建了这个函数:
function removeAndAddPermisionsRows(table, accesses) {
deleteRows(table);
var accessesLen = accesses.length;
var row = '<tr>';
for (var i = 0; i < accessesLen; i++) {
if (i != 0 && i % 2 == 0) {
row = row + '</tr><tr>';
}
row = row +
' <td class="leftMarginSectionItem">' +
' <asp:Image ID="PermisionImgSectionItem" runat="server" Width="32px" Height="32px" ImageUrl="~/Images/checkmark32.png" />' +
' </td>' +
' <td>' +
' <div>' +
' <h3 id="PermisionSectionItem"><asp:Label runat="server" ID="lblPermission" Text=""></asp:Label></h3>' +
' <asp:Label runat="server" ID="lblPermissionId" Text=""></asp:Label>' +
' </div>' +
' <p id="permisionRect" class="roundedCornersRectangleSectionItemsBackground" />' +
' </td>';
}
if (accessesLen % 2 == 0) {
row = row + '</tr>';
}
else {
row = row + '<td></td><td></td></tr>';
}
table.find('tbody').append(row);
}
好的,这里没问题,这段代码可以编译。
但我需要将循环中的“i”变量连接到一些字符串,因此如果我在循环中执行以下操作,例如我希望 ID PermisionImgSelectionItem 为 PermisionImgSelectionItem0、PermisionImgSelectionItem1 等等,其余 ID 相同:
row = row +
' <td class="leftMarginSectionItem">' +
' <asp:Image ID="PermisionImgSectionItem'+ i +'" runat="server" Width="32px" Height="32px" ImageUrl="~/Images/checkmark32.png" />' +
' </td>' +
' <td>' +
' <div>' +
' <h3 id="PermisionSectionItem"><asp:Label runat="server" ID="lblPermission" Text=""></asp:Label></h3>' +
' <asp:Label runat="server" ID="lblPermissionId" Text=""></asp:Label>' +
' </div>' +
' <p id="permisionRect" class="roundedCornersRectangleSectionItemsBackground" />' +
' </td>';
当我将 i 变量连接到字符串时,我的代码无法编译,vs2019 说自动生成的 Default.aspx.designer.cs 中存在错误,我不知道,但它也连接了变量“i”到一些控件的名称。
发生了什么事?
问题是由 asp:Label 元素引起的。在字符串和循环变量中连接此元素会导致此错误!用 html 标签替换 asp:Label 即可解决问题。