ASP.NET 建立 Javascript function 並傳遞資料

ASP.net 動態產生 Javascript 可以使用下面兩種方法

  1.         '產生的 script 在body 之後,開始的 div 上面
            Page.ClientScript.RegisterClientScriptBlock(GetType(Page), "key", Javascript程式)
  2.         '產生的 script 在最 /body 及 script 上面
            'Page.ClientScript.RegisterStartupScript(GetType(Page), "key", Javascript程式)
然後可以利用資料讀取時,將資料寫在 Javascript 的陣列內,再由別的 Javascript 去接收資料,例如下面的程式,將資料庫內的資料產生到一個回傳陣列的 asp_array()

    Public Sub CreateJavascriptArray()
        Dim I As Integer
        Dim strData As String = ""

        strData = strData & "<script>"
        strData = strData & "   function asp_array() {"
        strData = strData & "       let strArray = new Array(" & GridView1.Rows.Count - 1 & ");"

        For I = 0 To GridView1.Rows.Count - 1
            Dim dataRow As GridViewRow = GridView1.Rows(I)
            With dataRow
                strData = strData & "       strArray[" & I & "]=" & "['" & .Cells(0).Text() & "','" & .Cells(1).Text() & "'];"
            End With
        Next

        strData = strData & "       return strArray;"
        strData = strData & "   }"
        strData = strData & "</script>"

        '產生的 script 在body 之後,開始的 div 上面
        Page.ClientScript.RegisterClientScriptBlock(GetType(Page), "pos_array", strData)
        '產生的 script 在最 /body 及 script 上面
        'Page.ClientScript.RegisterStartupScript(GetType(Page), "pos_array", strData)

    End Sub

之後要套用的 Javascript 便可以宣告陣列來接走資料

    <script>
        var myData = asp_array();

        for (i=0; i< myData.length; i ++){
            let strListData = "";
            for (j=0 ; j<myData[i].length;j++){
                strListData += "," + myData[i][j];
            }
            document.write (strListData);
        }
    </script>

執行結果如下



留言

這個網誌中的熱門文章

Javascript Dialog 自訂輸入視窗 (五) 回傳資料事件及處理

RMMV 雜記 - 角色及劇情