2012-10-15 2 views
1

DetailsView의 위 버튼이 있습니다. 그것을 클릭하면 "Insert Note"대화 상자 (iframe의 다른 페이지)가 팝업되고,이 대화 상자는 Jquery를 사용하고 있습니다. 대화 상자 팝업의이 삽입 페이지에 recordID를 전달하는 방법을 모르겠습니다.RecordID를 Jquery UI 대화 상자에 전달

jQuery 코드는 :

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.ui/1.8.6/jquery-ui.min.js"></script> 
<link type="text/css" rel="Stylesheet" href="http://ajax.microsoft.com/ajax/jquery.ui/1.8.6/themes/smoothness/jquery-ui.css"> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#AddNewProposal').live('click', function (e) { 
      e.preventDefault(); 
      var page = $(this).attr("href") 
      //var page = "ProposalCreateNew.aspx" 
      var pagetitle = $(this).attr("title") 
      alert(page); 
      var $dialog = $('<div></div>') 
      .html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%" frameBorder="0" align="middle"> ></iframe>') 
      .dialog({ 
       autoOpen: false, 
       modal: true, 
       height: 650, 
       width: 900, 
       title: pagetitle 
      }); 
      $dialog.dialog('open'); 
     }); 
    }); 
</script> 

나는 이것을 시도했다, 그러나 그것은 오류

<table width="80%" align="center" > 
    <tr> 
     <td width="20%"></td> 
     <td width="80%" class="PageTitle"></td> 
     <td width="20%"> 
      <asp:Button runat="server" CommandName="AddNewProposal" ID="AddNewProposal" Text="Create New" href="ProposalCreateNote.aspx" title="Create Note" class="button3"/>    
     </td> 
    </tr> 
</table 
--- Below is my DetailsView which has a label to display the ProposalID, so I want to grab this ID and pass it to the dialog box (URL + ID) when I click the AddNewProposal button. 
<asp:TemplateField HeaderText="ProposedID" SortExpression="Name" > 
    <ItemTemplate > 
      <asp:Label ID="ProposalID" runat="Server" 
      style="text-align:left;" Text='<%# Eval("ProposedID")%>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

가 도와주세요 "서버 태그> <% ... %를 포함 할 수 없습니다"제공합니다. 미리 감사드립니다. 이 같은 해당 텍스트를 얻을 수 있어야하므로

+0

누구든지 어떤 의견이 있습니까? – Milacay

답변

0

Label 서버 컨트롤은 클라이언트 측에 span 요소를 생성 :

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#<%= AddNewProposal.ClientID %>').live('click', function(e) { 
     e.preventDefault(); 
     var page = '<%= ResolveClientUrl("~/ProposalCreateNew.aspx")%>' + '?ProposalID=' + encodeURIComponent($('span[id$="ProposalID"]').text()); 
     var pagetitle = $(this).attr("title"); 
     alert(page); 
     var $dialog = $('<div></div>') 
     .html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%" frameBorder="0" align="middle"> ></iframe>') 
     .dialog({ 
      autoOpen: false, 
      modal: true, 
      height: 650, 
      width: 900, 
      title: pagetitle 
     }); 
     $dialog.dialog('open'); 
    }); 
}); 
</script> 

이의 사용에주의하십시오

  • ClientID을 - 적절한 요소를 대상으로하기 위해 ASP.NET WebForms ID는 클라이언트 측에서 다를 수 있습니다 (ASP.NET 4.0에서 ClientIDMode.Static을 사용하지 않는 한)
  • ResolveClientUrl는 - (당신은 URL이 될 것입니다 무엇인지 확실하지 않는 한) 당신은 또한 .live() jQuery를 1.7으로 사용되지 않으며 당신이 .on()를 사용해야합니다 알고 있어야

클라이언트 측에서 적절한 URL을 확인합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 당신의 제안을 시도했지만 "Them Name 'ProposalID'가 현재 컨텍스트에 없습니다"라는 오류가 계속 발생합니다. 아마도이 레이블은 TextView 값을 감지 할 수없는 DetailsView 안에 있습니다. 제발 조언. – Milacay

+0

@Milacay 당신이 .ASPX 코드를 업데이트 한 것을 보았습니다. 저는 이것을 바탕으로보다 일반적인 스팬 요소에 대한 선택기를 변경했습니다. 지금 시험해보십시오. (저는 약간의 추측을하고 있습니다. 페이지에 다른 것들이있을 수 있습니다. 어떤 일을 조금 복잡하게 만들 수 있습니다). – tpeczek

+0

이것은 완벽하게 작동합니다! 정말 고맙습니다! 빠른 질문. 에서 ID를 숨기고 싶습니다. ProposalID를 캡처하는 데 동일한 방법을 사용할 수 있습니까? – Milacay

관련 문제