2012-06-20 54 views
0

我想做一個簡單的程序,將數據從數據庫中放入一個JavaScript數組,然後在文本框中顯示一個結果。以下是我迄今爲止如何將數據從數據庫從asp.net/vb.net javascript數組

 Dim cmd As New IfxCommand("select first 20 fname from table", conn) 
    Dim reader As IfxDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection) 
    Dim i As Integer = 0 
    While reader.Read() 
     ClientScript.RegisterArrayDeclaration("Names", "'" & reader("fname") & "'") 
     i += 1 


    End While 
    Dim cs As StringBuilder = New StringBuilder() 
    cs.Append("<script type=""text/javascript\""> function DoIt() {") 
    cs.Append("var TheTextBox = document.getElementById(""TextBox1"");") 
    cs.Append("TheTextBox.value = Names[0];") 
    cs.Append("script>") 
    TextBox1.Text = cs.ToString 

這裏是ASP

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
<title>Untitled Page</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 

</div> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
<p> 
    <asp:Button ID="Button1" runat="server" Text="Button" onclick = "DoIt"/> 
</p> 
</form> 
</body> 
</html> 

我不知道還有什麼我應該與此有關。

+0

是否有任何理由不使用ASP.NET來顯示TextBox中的值? –

+0

最終我想遍歷一個數組,但如果我通過asp做到了,它會每次刷新頁面 – user867621

回答

1

所以你想要顯示在TextBox最初顯示你選擇的20的名字,也許延遲加載另一個從客戶端通過javascript?

試試這個:

Using cmd = New IfxCommand("select first 20 fname from table", conn) 
    Dim tbl = New DataTable 
    Using reader = cmd.ExecuteReader() 
     tbl.Load(reader) 
     If tbl.Rows.Count <> 0 Then 
      Dim allNames = From row In tbl 
          Select row.Field(Of String)("fname") 
      TextBox1.Text = allNames.First 
      ' embed names with quotes and separate the strings by comma ' 
      Dim embeddedNames = From name In allNames Select String.Format("'{0}'", name) 
      ClientScript.RegisterArrayDeclaration("Names", String.Join(",", embeddedNames)) 
     End If 
    End Using 
End Using 

現在你只需要實現必要時切換名稱的JavaScript功能。您可以使用String split然後:

var allNames = documentGetElementById("Names").value.split(","); 
+0

我在clientcript行上收到一條錯誤,說它不能轉換爲字符串的一維數組 – user867621

+0

@ user867621 :因此,所有在服務器上的作品,你也已經實現了客戶端功能來迭代名稱?我可以看嗎?你有沒有調試過JavaScript(或者至少看看源代碼)來看看會發生什麼? –

+0

我的意思是它不會讓我編譯,因爲這一行ClientScript.RegisterArrayDeclaration(「Names」,String.Join(「,」,allNames)) 它在allNames下有說什麼第一條評論說 – user867621

相關問題