2012-11-15 31 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) });