2010-02-12 3 views
0

gridview의 각 행에 대한 컨텍스트 메뉴를 표시하려고합니다.asp.net gridview jquery contextmenu

상황에 맞는 메뉴는 각 행에 대한 특정 변수 (예 : 고유 한 사용자 ID)를 전달해야합니다.

내가 페이지에서 실제 HTML 출력 될 변수 이상의 사용의 뭔가

<ul id="myMenu" class="contextMenu"> 

<script src="scripts/jquery-1.3.2.js" type="text/javascript"></script>    
<script src="scripts/jquery.contextMenu.js" type="text/javascript"></script> 
    <link href="jquery.contextMenu.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript"> 

     $(document).ready(function() { 

      // Show menu when #myDiv is clicked 
      $("img").contextMenu({ 
        menu: 'myMenu' 
      }, 
        function(action, el, pos) { 
        alert(
         'Action: ' + action + '\n\n' + 
         'Element ID: ' + $(el).attr('id') + '\n\n' + 
         'X: ' + pos.x + ' Y: ' + pos.y + ' (relative to element)\n\n' + 
         'X: ' + pos.docX + ' Y: ' + pos.docY+ ' (relative to document)' 
         ); 
      });    


     }); 
</script> 


<form id="form1" runat="server"> 
<div> 
       <asp:GridView ID="Gridview1" runat="server" AutoGenerateColumns="false"> 
        <Columns> 
         <asp:TemplateField> 
          <ItemTemplate> 
           <asp:Image ID="imgPop" runat="server" ImageUrl="~/images/pop.gif" /> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:BoundField HeaderText="First Name" DataField ="FirstName" /> 
         <asp:BoundField HeaderText="Last Name" DataField ="LastName" /> 
        </Columns> 
       </asp:GridView>          
     <ul id="myMenu" class="contextMenu"> 
       <li class="edit"><a href="#edit">Edit</a></li> 
       <li class="cut separator"><a href="#cut">Cut</a></li> 
       <li class="copy"><a href="#copy">Copy</a></li> 
       <li class="paste"><a href="#paste">Paste</a></li> 
       <li class="delete"><a href="#delete">Delete</a></li> 
       <li class="quit separator"><a href="#quit">Quit</a></li> 
     </ul>  
</div> 

답변

0

를 통과 한 번만 페이지에 일에 내가 같이 UL 싶습니다 귀하의 질문은 주로 jQuery에 거짓말을하는 것처럼 ASPX에 반대.

난 여전히 당신의 상황에 맞는 메뉴를 만들 때 완전히 확실하지 않다, 그러나 이것은 당신이 동적에게 DOM을 추가하는 방법이 될 것이다 :

$("<ul id='myMenu' class='contextMenu'>").appendTo(selector); 
//...selector selects some item in the DOM. 

내가 아무 곳이나 HTML에 #MyDiv을 확인할 수 없습니다, 그래서 아마 당신이 필요합니다

$('#MyDiv').click(function(){ 
    //do something 
}); 

당신은 아마 시도하고 비트 CLE 일 수 있습니다

<div id='MyDiv'> 

는 클릭 이벤트에 바인딩하려면 여러분이 원한 것에 따라 여러분의 스크립트 샘플에 의사 코드 (pseudocode)를 추가 할 수 있습니다. 예를 들어 사용자 ID가 사용되는 곳과 같이 틈을 메울 수 있습니다.