0

データベースのデータをjavascript配列に入れて、1つの結果をテキストボックスに表示する簡単なプログラムを作成しようとしています。これが私がこれまでに持っているものです

        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>

これで他に何をすべきかわかりません。

4

1 に答える 1

1

したがって、最初に選択した20の名を表示し、TextBoxJavaScriptを介してクライアント側からもう一方を遅延ロードする必要がありますか?

これを試して:

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関数を実装するだけで済みます。次に、Stringsplitを使用できます。

var allNames = documentGetElementById("Names").value.split(","); 
于 2012-06-20T13:39:08.927 に答える