当变量有引号或单引号时,该函数不起作用。
代码:
<a onclick="javascript:return OpenModal('<%# GeraLog(Eval("loe_id")) %>')" style="cursor: pointer"> <img src="../Imagens/Visualizar.png" alt="Descrição" /></a>
当变量有引号或单引号时,该函数不起作用。
代码:
<a onclick="javascript:return OpenModal('<%# GeraLog(Eval("loe_id")) %>')" style="cursor: pointer"> <img src="../Imagens/Visualizar.png" alt="Descrição" /></a>
尝试使用字符串连接来解决嵌套引号冲突。
<a onclick='<%# "javascript:return OpenModal(" + GeraLog(Eval("loe_id")) + ");" %>' style="cursor: pointer"> <img src="../Imagens/Visualizar.png" alt="Descrição" /></a>
我找到了解决办法!我保留了我的代码:
<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("\"", """).Replace("\'", "‘"));
sb.Append(" para ");
sb.Append(row["valor_atual"].ToString().Replace("\"", """).Replace("\'", "‘"));
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();
}
感谢你们。