2

問題を解決する別の方法を探しています。ファイルの参照にElFinderを使用しており、ユーザーが右クリックのコンテキスト メニュー ("権限の変更") を使用してファイル要素へのアクセス権を変更できるようにしたいと考えています。私がこれまでに思いついた解決策は、サーバー側の ASP.NET ユーザー コントロールを jQuery モーダル ダイアログ ウィンドウにロードすることです。このユーザー コントロールには、選択した要素へのユーザー アクセスを追加/削除するために必要なロジックが含まれます。

jQuery ダイアログ スクリプトは次のようになります (読みやすくするために少し変更されています)。ここで、DisplayItemAccessConfig() はコンテキスト メニューから呼び出されるメソッドです。

<!-- access control script -->
<script type="text/javascript" charset="utf-8">

     function DisplayItemAccessConfig() {
        $.getJSON('AccessRights.ashx', function (data) {

            var itemName = data["itemName"];

            /* set new title (JUST FOR TESTING) */
            $(dialog).dialog('option', 'title', itemName);

            /* open modal dialog --> */
            $(dialog).dialog('open');

        });

    }

    $(function () {
        $("#dialog").dialog({
            autoOpen: false,
            modal: true,
            buttons: {
                "Ok": function () { $(this).dialog("close"); },
                "Cancel": function () { $(this).dialog("close"); }
            },
            open: function (type, data) {
                $(this).parent().appendTo("form");
            }
        });
    });    
</script>

課題 1: jQuery ポップアップが表示されるたびにユーザー コントロールをリロードする方法を見つけます。これは、選択した要素の現在のアクセス設定を取得するためです。これは、ユーザー コントロールのプレースホルダーと表示設定が none に設定された更新パネルを含む div 要素であるため、ページが最初に読み込まれたときに読み込まれます。ここに何かヒントはありますか?

課題 2: その 1 つを理解しようとしているときに、他の意見を求める価値があると考えました。これを解決するより良い方法はありますか?ASP.NET ユーザーコントロールの代わりに、HTML で純粋な jQuery を使用し、サーバー側の .ashx メソッドを呼び出してデータを取得する必要がありますか?

4

1 に答える 1

1
  1. これを行うには、アップロードパネル内に非表示のボタンを作成し、次のようにトリガーします。

    __doPostBack('<%= Button.ClientID%>'、'');

  2. 個人的には、UpdatePanelを削除し、jQuery AJAX呼び出しを使用してダイアログウィンドウのコンテンツを更新しますが、これはユーザーコントロールの複雑さに依存します。あなたのコードをもっと見ずに言うのは難しい。

于 2012-04-12T06:29:48.297 に答える