質問

次の文字列を指定すると、「s0 \\ 8 \\ 26 \\ 29 \\ 30 \\ 32」または「s0 \\ 8 \\ 26 \\」または「s0 \\ 5」が返されます。文字列の最後の桁。

指定:

 function getFolderID(mystr) {
        var reFolderID = /\bs0\\\\[0-9]+\b/g //regexp to return s0\\34
        var retArr = [];
        var retval = '';

        retArr = mystr.match(reFolderID);
        retArr = retArr[0].replace(/s0\\\\/g, "");

        if (retArr != null) {
            retval = retArr[retArr.length - 1];
        }
        //alert("Ret: " + retval);
        return retval;
    }  

最初は最初の数字だけが必要だと思っていましたが、最後の数字が必要であることがわかりました。

これに適した正規表現の用語は何ですか?

また、返されたJS値で何かを行うためにASP.Netイベントハンドラを作成するにはどうすればよいですか?

役に立ちましたか?

解決

次を試すことができます。書式に従って、最後の一連の数値をグループ化する必要があります。

/s0\\\\(?:[0-9]+\\\\)*([0-9]+)/

つまり、次のようなものです:

function getFolderID(mystr) {
    // search string for last group of digits in the pattern
    var matches = mystr.match(/s0\\\\(?:[0-9]+\\\\)*([0-9]+)/);

    // if matches is null, replace with "defaults"
    matches ||= ["", ""];

    // grab the first grouped match
    return matches[1];
}

ASP.NETイベントに関しては、おそらく<asp:UpdatePanel />またはAjaxライブラリ(jQuery、Prototypeなど)を選択するなど、Ajaxを使用する必要があります。

Ajaxなしでは、JavaScriptとASP.NETが同時に実行されることはありません。

他のヒント

この方法で文字列の最後の桁を照合できます:

function getFolderId(str) {
    var pattern = /([0-9]+)$/;
    var result = pattern.exec(str);
    return result ? result[1] : null;
}

サーバーにJavascriptパラメーターを返す問題について...

2つのASP.Net非表示フィールドを作成し、JSでこれらのフィールドの値を設定します...出来上がり-コードビハインドから利用可能:

    // set .net hidden control values so they're server-side accessible
    document.getElementById('ctl00_ContentPlaceHolderMainBody_HidTreeContextAction').value = buttonAction;
    document.getElementById('ctl00_ContentPlaceHolderMainBody_HidTreeContextID').value = buttonFolder;

そして

<asp:HiddenField ID="HidTreeContextAction" runat="server" />
<asp:HiddenField ID="HidTreeContextID" runat="server" />

ワークフローは次のとおりです。 1)ユーザーがツリーノードを右クリックします 2)コンテキストメニューが表示されます 3)コンテキストメニュー項目を選択すると、非表示の値を設定するJSが起動します 4)ユーザー入力を受け入れるようにajaxスタイルのウィンドウが表示されます 5)ユーザーが送信をクリックする 6)両方のパラメーターを使用して、データの送信先/送信先を決定します

これはちょっとしたハックであり、AJAXを使用していない可能性があります。誰かがこれがどのようにajaxスタイルで行われるかを共有したい場合は、素晴らしい!

他の誰かがそれを必要とする場合に備えて、この簡単な修正を共有すると思いました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top