1

当变量有引号或单引号时,该函数不起作用。

代码:

<a onclick="javascript:return OpenModal('<%# GeraLog(Eval("loe_id")) %>')" style="cursor:   pointer"> <img src="../Imagens/Visualizar.png" alt="Descrição" /></a>
4

2 回答 2

2

尝试使用字符串连接来解决嵌套引号冲突。

<a onclick='<%# "javascript:return OpenModal(" + GeraLog(Eval("loe_id")) + ");" %>'  style="cursor:   pointer"> <img src="../Imagens/Visualizar.png" alt="Descrição" /></a>
于 2013-01-14T13:06:07.330 回答
0

我找到了解决办法!我保留了我的代码:

<a onclick="javascript:return OpenModal('<%# GeraLog(Eval("loe_id")) %>')" style="cursor:   pointer"> <img src="../Imagens/Visualizar.png" alt="Descrição" /></a>

在我后面的代码中,我使用了:

public string GeraLog(object loe_id)
    {
        tab_log tabLog = new tab_log { Tab_usuarios = { usu_id = Convert.ToInt32(ddlUsuario.SelectedValue) } };

        DateTime? Nulo = null;

        tabLog.log_data_inicio = txtPeriodoDe.Text == string.Empty ? Nulo : DateTime.Parse(txtPeriodoDe.Text);
        tabLog.log_data_final = txtPeriodoAte.Text == string.Empty ? Nulo : DateTime.Parse(txtPeriodoAte.Text);
        tabLog.Tab_usuarios.usu_id = Convert.ToInt32(ddlUsuario.SelectedValue);
        tabLog.loe_id = (int)loe_id;

        string tabela = ddlModulos.SelectedValue;

        DataTable table = tabLog.SelectLogModal(tabLog, tabela);

        System.Text.StringBuilder sb = new System.Text.StringBuilder();

        foreach (DataRow row in table.Rows)
        {
            sb.Append("O usuário: ");
            sb.Append(row["quem_alterou"]);
            sb.Append(" alterou o campo ");
            sb.Append(row["campo_alterado"]);
            sb.Append(" de ");
            sb.Append(row["valor_anterior"].ToString().Replace("\"", "&quot").Replace("\'", "&lsquo;"));
            sb.Append(" para ");
            sb.Append(row["valor_atual"].ToString().Replace("\"", "&quot").Replace("\'", "&lsquo;"));
            sb.Append(" | ");
            sb.Append(row["data"]);
            sb.Append(" - ");
            sb.Append(row["hora"]);
            sb.Append("<br>");
        }

        loe_id = sb;

        if (loe_id.ToString() == "")
        {
            loe_id = "Nenhuma informação alterada";
        }

        return loe_id.ToString();
    }

感谢你们。

于 2013-01-14T17:57:01.003 回答