2013-01-14 36 views
1

當變量帶有引號或單引號時,該函數不起作用。Onclick javascript引號 - ASP.NET

代碼:

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

什麼變數? –

+0

向我們展示呈現的HTML。並且定義「不起作用」更好。你有一個特定的JS錯誤? – Graham

+0

在我的頁面出現代碼:'+「)」style =「cursor:pointer」>。 –

回答

2

嘗試使用字符串連接來解決嵌套引用衝突。

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

Adil,你的代碼用引號解決了問題,但用單引號問題依然存在。像'文字'一樣。謝謝 –

+0

更新了我的答案,檢查它是否有幫助? – Adil

+0

問題是一樣的:「文本」的作品,「文字」不。並且我注意到IE顯示錯誤:Mensagem:無效字符 行:94,字符:18,Código:0 ... –

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(); 
    } 

謝謝你們。