2009-06-09 18 views
18

Ho bisogno che qualche html nell'area nella pagina asp.net che sto codificando, sia cambiato secondo una variabile stringa. Stavo pensando di creare un'etichetta e quindi modificare il testo su di essa.ASP.NET - Come scrivere un html nella pagina? Con Response.Write?

Ma la variabile stringa contiene qualcosa come:

<h2><p>Notify:</p> alert</h2> 

Quindi, non mi sento che danno ad un testo dell'etichetta è una buona idea

Come posso fare? Utilizzare response.write? Se uso response.write, il mio codice aggiunto sarà all'inizio del codice sorgente HTML, come posso dirgli di aggiungerlo in uno specifico?

Grazie

risposta

28

perché non dai una prova allo LiteralControl?

myLitCtrl.Text="<h2><p>Notify:</p> Alert</h2>"; 
+0

non sapevo di LiteralControl ... scusate, io sono un principiante ....: - $ –

+6

non importava a tutti era (principiante) qualche volta :) – TheVillageIdiot

32

Se davvero non si vuole utilizzare i controlli server, si dovrebbe mettere il Response.Write nel luogo che si desidera la stringa da scrivere:

<body> 
<% Response.Write(stringVariable); %> 
</body> 

Una scorciatoia per questo sintassi è:

<body> 
<%= stringVariable %> 
</body> 
+0

Esattamente quello che stavo cercando, eccellente. Può essere utilizzato per l'output della stringa JSON? –

3

utilizzare un controllo letterale e scrivere il codice HTML in questo modo:

2

Si consiglia di utilizzare il controllo ASP.NET letterale letteralmente per quello.

3

di file ASPX:

<h2><p>Notify:</p> <asp:Literal runat="server" ID="ltNotify" /></h2> 

file di aspx.cs:

ltNotify.Text = "Alert!"; 
1

Si può andare con il controllo letterale di ASP.net oppure è possibile utilizzare pannelli o lo scopo.

10

Se volete qualcosa di più leggero di un'etichetta o un altro controllo server specifico, ASP.NET si può semplicemente utilizzare un DIV HTML standard o SPAN e con runat = "server", ad esempio:

Markup:

<span runat="server" id="FooSpan"></span>

Codice:

FooSpan.Text = "Foo";

+0

cool! Non sapevo che –

+1

non riesco a vedere come "" è più leggero di "". –

+2

Inoltre, le etichette vengono convertite in intervalli in fase di esecuzione comunque ... – Jack

0

È inoltre possibile utilizzare pageMethods in asp.net. In modo che tu possa chiamare le funzioni javascript dalle funzioni asp.net. Per esempio.

[WebMethod] 
 
    public static string showTxtbox(string name) 
 
    { 
 
     return showResult(name); 
 
    } 
 
     
 
    public static string showResult(string name) 
 
    { 
 
     Database databaseObj = new Database(); 
 
     DataTable dtObj = databaseObj.getMatches(name); 
 

 
     string result = "<table border='1' cellspacing='2' cellpadding='2' >" + 
 
              "<tr>" + 
 
               "<td><b>Name</b></td>" + 
 
               "<td><b>Company Name</b></td>" + 
 
               "<td><b>Phone</b></td>"+ 
 
              "</tr>"; 
 

 
     for (int i = 0; i < dtObj.Rows.Count; i++) 
 
     { 
 
      result += "<tr> <td><a href=\"javascript:link('" + dtObj.Rows[i][0].ToString().Trim() + "','" + 
 
      dtObj.Rows[i][1].ToString().Trim() +"','"+dtObj.Rows[i][2]+ "');\">" + Convert.ToString(dtObj.Rows[i]["name"]) + "</td>" + 
 
       "<td>" + Convert.ToString(dtObj.Rows[i]["customerCompany"]) + "</td>" + 
 
       "<td>"+Convert.ToString(dtObj.Rows[i]["Phone"])+"</td>"+ 
 
      "</tr>"; 
 
     } 
 

 
     result += "</table>"; 
 
     return result; 
 
    }

Qui sopra codice è scritto in .aspx.cs pagina. Il database è un'altra classe. Nella funzione showResult() ho chiamato la funzione link() di javascript. Il risultato viene visualizzato sotto forma di tabella.

Problemi correlati