这是我第一次使用ASP而且我有点搞砸了。我正在编写一个接口,用于从数据库中获取信息并将其显示在表中。为此,我使用一个asp按钮,当我点击onClick事件中的按钮时,从asp文本框获取文本,我连接到数据库,执行查询并将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
问候。
答案 0 :(得分:2)
不使用Response.Write,而是在按钮下方引入Literal控件,并将生成的文本分配给Literal的Text属性。这将确保您的内容显示在按钮下方。
假设您有一个名为SearchBox <asp:Textbox id="SearchBox" runat="server" />
的ASP.NET文本框,将文字放在它下面
<asp:Textbox id="SearchBox" runat="server" />
<br />
<asp:Literal id="ResultHtml" runat="server" />
并在您的代码后面,用
替换Response.Write
次来电
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()
答案 1 :(得分:0)
在页面呈现给响应之前,您正在将html写入响应。