0

JavascriptとPHPに精通している方は、Objectコンストラクターを使用して、基本的に次のような匿名の連想配列に相当するものを参照する方法を知っています。

myFunction({
    "param1" : "value1",
    "param2" : "value2"
});

利点は、ターゲット関数の各パラメーターに名前を付ける必要がなく、デフォルトを設定できることです。VBScriptで同様にステートメントを作成する方法を知っている人はいますか?私はDictionaryクラスを調べていましたが、例を見るまで、ここでそれをどのように活用するかをしっかりと把握することはできないと思います。

ありがとう、

4

2 に答える 2

3

Dictionaryオブジェクトは、まさにあなたが探しているものです。私はそれをサイトの多言語スキニングにうまく使用しました。使用するのは難しくありません。

見る:http://www.devguru.com/technologies/vbscript/13992.asp

于 2010-11-15T21:38:56.433 に答える
1

あなたは正しかった、それは使用するのは難しくなかった。通常の配列でクリエイティブになるだけの問題でした。これが私がしたことです:

<%
    Function Img(aParamArray)
        Dim oImageTag,aImageTagKeys, val, param, key, output
        Set oImageTag = CreateObject("Scripting.Dictionary")

        For Each param In aParamArray
            val = Split(param, "::")
            If Ubound(val) = 1 Then
                oImageTag(val(0)) = val(1)
            End If
        Next

        aImageTagKeys = oImageTag.Keys
        Img = "<img "
        For Each key in aImageTagKeys
            If oImageTag(key) <> "" Then
                Img = Img & key & "=""" & oImageTag(key) & """ "
            End If
        Next

        If iDocType = 0 Or iDocType = 1 Or iDocType = 6 Then
            Img = Img & ">"
        Else
            Img = Img & "/>"
        End If
    End Function
%>

--またはデフォルトを設定して、サポートされている属性のみを出力できます--

<%
Function Img(aParamArray)
    Dim oImageTag,aImageTagKeys, val, param, key, output
    Set oImageTag = CreateObject("Scripting.Dictionary")
    oImageTag("src") = ""
    oImageTag("alt") = ""
    oImageTag("class") = ""
    oImageTag("id") = ""
    oImageTag("width") = ""
    oImageTag("height") = ""
    oImageTag("usemap") = ""
    oImageTag("title") = ""
    oImageTag("style") = ""
    oImageTag("dir") = ""
    oImageTag("lang") = ""
    oImageTag("ismap") = ""
    oImageTag("onabort") = ""
    oImageTag("onclick") = ""
    oImageTag("ondblclick") = ""
    oImageTag("onmousedown") = ""
    oImageTag("onmouseout") = ""
    oImageTag("onmouseover") = ""
    oImageTag("onmouseup") = ""
    oImageTag("onkeydown") = ""
    oImageTag("onkeypress") = ""
    oImageTag("onkeyup") = ""

    For Each param In aParamArray
        val = Split(param, "::")
        If Ubound(val) = 1 Then
            If oImageTag.Exists(val(0)) Then
                oImageTag(val(0)) = val(1)
            End If
        End If
    Next

    aImageTagKeys = oImageTag.Keys
    Img = "<img "
    For Each key in aImageTagKeys
        If oImageTag(key) <> "" Then
            Img = Img & key & "=""" & oImageTag(key) & """ "
        End If
    Next

    If iDocType = 0 Or iDocType = 1 Or iDocType = 6 Then
        Img = Img & ">"
    Else
        Img = Img & "/>"
    End If
End Function
%>

そしてそれをこのように呼んでください:

<% =Img(Array(_
                "src::http://www.domain.com/img.jpg",_
                "alt::Some alt text",_
                "width::30",_
                "height::30",_
                "class::noborder"_
)) %>

これで、Doctypeに関係なく画像タグの出力を簡単に制御でき、SQLサーバーからの画像の出力は、通常のインデックス付き配列から疑似連想配列を作成できるようになったため、はるかに簡単になります。

これを理解するためのポイントは、画像タグを作成することではなく、実際には、SQLサーバーからのいくつかの要因とデータに基づいて、データとフォームのビュー全体を構築することでしたが、理解するために単純化する必要がありました。今では完全に機能しています。

あなたの提案をありがとう!

于 2010-11-16T19:01:36.783 に答える