2012-04-12 27 views
2

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

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

<!-- 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ポップアップが表示されるたびに、選択された要素の現在のアクセス設定を取得します。これは、ページが最初に読み込まれるときにロードされます。これは、div要素にusercontrolとvisibilityがnoneに設定されたプレースホルダを含む更新パネルが含まれているためです。誰でもここにヒントはありますか?

挑戦2:他の意見を求めている間に、私はそれが価値があると思っていることを理解しようとしていますが、これを解決するより良い方法はありますか?私はASP.NETの純粋なjQueryを使用し、ASP.NETのusercontrolではなく、データを取得するためにサーバー側の.ashxメソッドを呼び出す必要がありますか?

答えて

1
  1. あなたはuploadpanel内側に隠しボタンを作成することによってこれを行い、その後、このようにそれをトリガーすることができます

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

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

+0

jQuery AJAXとKnockoutjsを組み合わせると、更新パネルと部分的なポストバックがなくても必要なすべての機能を利用できるはずです。 – Andreas