这是我从 web 服务获取 json 并将 SQL 数据打印到 html 表中的脚本。在我尝试使用 Eval 函数为图像打印一列之前,一切都在 100% 工作。
<script>
function GetListaColaboradores() {
var url = "GetColaboradoresWebService.asmx/GetListaColaboradores";
$("#AdminUserListPanel").html("<div style='text-align:center; background-color:yellow; border:1px solid red; padding:3px; width:200px'>Please Wait...</div>");
var request = $.ajax({
type: "POST",
url: url,
data: "{}",
contentType: "application/json; charset-utf-8",
dataType: "json"
})
request.done(function (data) {
var TableContent = "<table id='example1' class='table table-bordered table-striped'>" +
"<thead>" +
"<tr>" +
"<td> Nome </td>" +
"<td> Departamento </td>" +
"<td> Ciclo </td>" +
"<td> Observações </td>" +
"<td> Estado </td>" +
"<td> </td>" +
"<td> </td>" +
"</tr>" +
"</thead>";
$(function () {
$('#example1').DataTable();
})
for (var i = 0; i < data.d.length; i++) {
TableContent += "<tr>" +
"<td>" + data.d[i].Name + "</td>" +
"<td>" + data.d[i].Department + "</td>" +
"<td>" + data.d[i].Profile + "</td>" +
"<td>" + data.d[i].Observations + "</td>" +
"<td>" + data.d[i].Status + "</td>" +
"<td style='text-align: center'>" +
'<asp:Image ID="EditIcon" Style="cursor: pointer" ImageUrl="Images/icons8-edit-48.png" Width="15" Height="15" runat="server" />' +
"</td>"+
"<td>" +
"<asp:Image ID='DisableIcon' Width='15' Height='15' ToolTip='Suspender' Style='cursor: pointer' ImageUrl='Images/icons8-unavailable-30.png' runat='server' OnClientClick='<%# Eval("Nome","Javascript:return confirm(\'Deseja suspender o utilizador: {0}\');")%>' Visible='<%# Eval("Descricao").ToString().Replace(" ","")=="Activo" ? true:false %>' />" +
"<asp:Image ID='EnableIcon' Width='15' Height='15' ToolTip='Ativar' Style='cursor: pointer' ImageUrl='Images/icons8-checkmark-30.png' runat='server' OnClientClick='<%# Eval("Nome","Javascript:return confirm(\'Deseja activar o utilizador: {0}\');")%>' Visible='<%# Eval("Descricao").ToString().Replace(" ","")=="Activo" ? false:true %>' />" +
"</td>"+
"</tr>";
}
TableContent += "</table>";
$("#AdminUserListPanel").html(TableContent);
})
request.fail(function (response) {
});
}
document.addEventListener('DOMContentLoaded', GetListaColaboradores, false);
</script>
这就是问题所在。它给了我一个错误,说服务器标签格式不正确
"<asp:Image ID='DisableIcon' Width='15' Height='15' ToolTip='Suspender' Style='cursor: pointer' ImageUrl='Images/icons8-unavailable-30.png' runat='server' OnClientClick='<%# Eval("Nome","Javascript:return confirm(\'Deseja suspender o utilizador: {0}\');")%>' Visible='<%# Eval("Descricao").ToString().Replace(" ","")=="Activo" ? true:false %>' />" +
"<asp:Image ID='EnableIcon' Width='15' Height='15' ToolTip='Ativar' Style='cursor: pointer' ImageUrl='Images/icons8-checkmark-30.png' runat='server' OnClientClick='<%# Eval("Nome","Javascript:return confirm(\'Deseja activar o utilizador: {0}\');")%>' Visible='<%# Eval("Descricao").ToString().Replace(" ","")=="Activo" ? false:true %>' />" +
我试图更换
'Deseja activar o utilizador: {0}\'
至
"Deseja activar o utilizador: {0}\"
它会加载页面而不显示任何错误,但它不会打印我的表格,所以我不知道还能做什么,我尝试用单引号替换尽可能多的双引号,但没有成功。也许有更好的方法可以在不使用 Eval 函数的情况下做到这一点?