変数に引用符または一重引用符がある場合、関数は機能しません。
コード:
<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();
}
君たちありがとう。