2009-06-09 27 views
18

Necesito que algunos html en el área en la página asp.net que estoy codificando, se cambien según una variable de cadena. Estaba pensando en crear una etiqueta, y luego cambiar el texto en ella.ASP.NET - ¿Cómo escribir algunos html en la página? Con Response.Write?

Pero la variable de cadena contiene algo como:

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

Por lo tanto, no me siento que dan a un texto de la etiqueta es una buena idea

Cómo me puedo hacer? ¿Usando response.write? Si uso response.write, mi código agregado estará al principio de la fuente html, ¿cómo puedo decirle que lo agregue en un específico?

Gracias

Respuesta

28

¿por qué no le das LiteralControl?

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

no sabía acerca de LiteralControl ... lo siento, soy un principiante ...: - $ –

+6

no importa que todo el mundo fuera (principiante) alguna vez :) – TheVillageIdiot

32

Si realmente no desea utilizar los controles de servidor, usted debe poner el Response.Write en el lugar que desea la cadena a ser escrito:

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

Una forma abreviada de esta sintaxis es:

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

Exactamente lo que estaba buscando, excelente. ¿Se puede utilizar esto para enviar una cadena JSON? –

3

utilizar un control literal y escribir su html así:

literal1.text = "<h2><p>Notify:</p> alert</h2>"; 
2

Realmente debe utilizar el control Literal ASP.NET para eso.

3

archivo ASPX:

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

archivo aspx.cs:

ltNotify.Text = "Alert!"; 
1

Usted puede ir con el control literal de ASP.net o puede utilizar paneles o el propósito.

10

Si quieres algo más ligero que una etiqueta u otro control de servidor en ASP.NET específica que sólo puede utilizar un estándar HTML DIV o SPAN y con runat = "server", por ejemplo:

de marcado:

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

Código:

FooSpan.Text = "Foo";

+0

¡genial! No sabía que –

+1

No veo cómo "" es más claro que "". –

+2

Además, las etiquetas simplemente se convierten en tramos en tiempo de ejecución de todos modos ... – Jack

0

también puede utilizar PageMethods en asp.net. Para que pueda llamar a las funciones de JavaScript desde las funciones de asp.net. P.ej.

[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; 
 
    }

Aquí arriba código está escrito en .aspx.cs página. La base de datos es otra clase. En la función showResult() he llamado a la función link() de javascript. El resultado se muestra en forma de tabla.

Cuestiones relacionadas