1

这是我从 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 函数的情况下做到这一点?

4

1 回答 1

0

您应该尝试使用 \" 转义双引号

于 2018-09-27T14:10:14.057 回答