2012-11-15 106 views
1

这是我第一次使用ASP,我对它有点迷惑。我正在编写一个从数据库中获取信息并将其显示在表中的接口。为此,我使用了一个asp按钮,它从一个asp文本框中获取文本,一旦我点击onClick事件中的按钮,就可以执行查询并将html打印到主页面。ASP.NET onclick事件在页面顶部呈现HTML

问题是,一旦我点击按钮,生成的html呈现在页面顶部,文本框和按钮仍然在下面,迫使我向下滚动以进行其他搜索。

这是我的onClick代码是否有帮助:

If Not SearchBox.Text Is Nothing Then 

     Dim conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & 
             "Data Source= C:\Users\user\Documents\Visual Studio 2012\Projects\Aplicación UNED\Aplicación UNED\App_Data\Libros.mdb") 

     Dim query = New OleDbCommand("SELECT * FROM Libros WHERE Titulo LIKE '%" & SearchBox.Text & "%'", conn) 

     Dim adapter = New OleDbDataAdapter(query) 

     Dim res = New DataSet() 
     adapter.Fill(res, "Libros") 
     Response.Write("<table class='data_table'>") 
     Response.Write("<thead><tr class='data_table_info'><th scope='col'>Titulo</th><th scope='col'>Resumen</th><th scope='col'>Categoria</th><th scope='col'>ISBN</th><th scope='col'>PrecioConIVA</th><th scope='col'>EnlaceCompra</th></tr></thead>") 
     For Each Fila In res.Tables("Libros").Rows 
      Response.Write("<tr><td>" & Fila("Titulo") & "</td><td>" & Fila("Resumen") & "</td><td>" & Fila("Categoria") & "</td><td>" & Fila("ISBN") & "</td><td>" & Fila("PrecioConIVA") & "</td><td>" & Fila("EnlaceCompra") + "</td></tr>") 
     Next 
     Response.Write("</table>") 
     conn.Close() 
    End If 
End Sub 

问候。

回答

2

代替使用Response.Write,在您的按钮下面引入一个Literal控件,并将生成的文本分配给Literal的Text属性。这将确保您的内容显示在您的按钮下方。

假设你有一个ASP.NET文本框的名称为搜索盒<asp:Textbox id="SearchBox" runat="server" />地方字面下方

<asp:Textbox id="SearchBox" runat="server" /> 
<br /> 
<asp:Literal id="ResultHtml" runat="server" /> 

并在后面的代码,用

Dim sb = new StringBuilder("<table class='data_table'>") 
sb.Append("<thead><tr class='data_table_info'><th scope='col'>Titulo</th><th scope='col'>Resumen</th><th scope='col'>Categoria</th><th scope='col'>ISBN</th><th scope='col'>PrecioConIVA</th><th scope='col'>EnlaceCompra</th></tr></thead>") 

     For Each Fila In res.Tables("Libros").Rows 
      sb.Append("<tr><td>" & Fila("Titulo") & "</td><td>" & Fila("Resumen") & "</td><td>" & Fila("Categoria") & "</td><td>" & Fila("ISBN") & "</td><td>" & Fila("PrecioConIVA") & "</td><td>" & Fila("EnlaceCompra") + "</td></tr>") 
     Next 

sb.Append("</table>")  
ResultHtml.Text = sb.ToString() 
+0

我猜想问题出在那个方法上。你能给我一个如何使用文字控件的例子吗?谢谢 – Nucklear

+0

查看最新的答案。 –

+0

它现在只是为了说明我正在使用VB.NET,所以我不得不修改StringBuilder sb = new StringBuilder(“

”)Dim sb = new StringBuilder(“
", false) });