2012-10-08 4 views
0

OK, 내 머리를 때리고. 이 문제에 관해 많은 논의가있는 것 같지만, 더 자세히 세분화 할 필요가 있다고 생각합니다. 일부 사용자 상호 작용 (확인란)을 허용하고 대화 상자에서 확인을 클릭하면 주 페이지에 필드를 설정하는 트리보기가있는 모달 대화 상자를 만들고 싶습니다. 이 작업을 수행하는 방법을 완전히 알지 못합니다.jQuery 모달 대화 상자 동적 내용 포함

버튼을 클릭하면 아무 문제없이 대화 상자를 열 수 있습니다.

마크 업 :

<input id="buttonBuildSelect" runat="server" value="Build Select" type="submit" onserverclick="buttonBuildSelect_ServerClick" /> 
<div id="dialog" title="Expression Builder"> 
    <p> 
     <asp:CheckBox ID="checkBoxOverwrite" runat="server" Text="Overwrite Existing Statement" /></p> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <asp:Panel ID="Panel1" runat="server" Style="border: 1px solid black; overflow: auto; 
       height: 200px;"> 
       <asp:Label ID="labelExpressionType" runat="server" Text=""></asp:Label> 
       <asp:TreeView ID="popupTreeView" runat="server" CssClass="treeview" ShowLines="true" 
        NodeStyle-CssClass="nodeStyle"> 
       </asp:TreeView> 
      </asp:Panel> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    <br />   
</div> 

스크립트 :

$(document).ready(function() { 

    $(function() { 
     $("input:submit").button(); 
     $("input:submit").click(function() { 
      $("#dialog").dialog("open"); 
      return false; 
     }); 
    }); 


    $(function() { 
     $("#dialog").dialog(
      { 
       autoOpen: false, 
       modal: true, 
       width: 400, 
       height: 355, 
       resizable: false, 
       open: function() { 
        $(this).load("ExpressionBuilder.ascx"); 
       }, 
       options: { resizable: false }, 
       buttons: { "OK": function() { 
        return false 
       }, 
        Cancel: function() { 
         $(this).dialog("close") 
        } 
       } 
      } 
     ) 
    }); 
}); 

하지만 내가 가지고

열기 대화 상자) 데이터베이스 3에서 버튼 2) 부하 트리보기를 클릭하는 방법 1)을 알아낼 수 없습니다 두 가지 방법으로 작업하고 있지만 작동하지 못합니다.

방법 1 : ajax를 사용하십시오. 그러나 어떤 형식으로 트리보기에 바인딩 할 데이터를 반환하고 트리 뷰를 스크립트에서 바인딩 할 수 있습니까?

방법 2 : ... 추구하고 작업하는 방법을지고 약간의 도움이 필요하는 방법 사용자 컨트롤

를로드하는 별도의 사용자 컨트롤 대화의 내용을 입력 한 다음 대화 상자를 설정

감사

편집

내가 쿼리 빌더를 구축하고있다. 사용자는 사용 가능한 엔티티의 드롭 다운에서 엔티티를 선택합니다. 사용자는 'Select Select Statement'버튼을 클릭한다. 선택한 엔티티의 트리 뷰가 상위 노드로 표시되고 엔티티의 모든 필드에 대한 하위 노드가있는 대화 상자가 나타납니다. 사용자는 select.에 포함될 각 필드를 점검하고. 인을 누르십시오. 대화 상자가 닫히고 '명령문 선택'텍스트 상자가 엔터티 데이터 소스 ESQL 문 ([field1], it. [field2] 등)으로 포맷 된 체크 된 필드로 채워짐

게시 된 코드 위의 대화 상자가 열리지 만 아무 내용도 없습니다 (아무 데이터도 바인딩하지 않았으므로 데이터를 하드 코딩 할 수 있지만 사용하려는 엔티티를 선택할 수 있어야하므로 트리의 데이터 소스를 의미합니다). ..보기 내가 일을하기 위해서는 다음의 방법들 중 하나를 얻을 수 없었다, 지금 오류 동적 없어야합니다,하지만 대화 중 (버튼 클릭은 아무것도하지 않습니다)

+0

당신은 당신이 달성하려는 작업에 더 정교한 ..can 혼란과 어떤 오류 지금 점점을 ... u는 당신이 온 클릭과에서 버튼으로 대화 상자를 열 수 있다고 말했다 최고 아래쪽에 당신이 말하고있는 U 방법을 알아 내고 싶어 3) 대화 상자를 열어 ?? – Scorpio

+0

위의 편집 참조 ... 도움이 되십시오. –

답변

-1

솔루션 :.

코드에서 대화 상자를 구축 스크립트 대신에 뒤에서 scri을 등록하십시오. 태평양 표준시. 그래서, 방법 작성 :

''' <summary> 
''' Open the jquery dialog 
''' </summary> 
''' <remarks></remarks> 
Protected Sub OpenDialog() 
    Dim sb As New StringBuilder() 
    sb.Append("$(function() { ") 
    sb.Append(" $('#dialog').dialog({") 
    sb.Append(" modal: true,") 
    sb.Append(" width: 400,") 
    sb.Append(" height: 355,") 
    sb.Append(" show: 'blind',") 
    sb.Append(" hide: 'blind',") 
    sb.Append(" resizable: false,") 
    sb.Append(" buttons: { 'OK': function() {") 
    sb.Append("  return false;") 
    sb.Append(" },") 
    sb.Append("  cancel: function() {") 
    sb.Append("   $(this).dialog('close');") 
    sb.Append("  },") 
    sb.Append(" },") 
    sb.Append(" });") 
    sb.Append("});") 
    Page.ClientScript.RegisterStartupScript(GetType(Page), "myscript", sb.ToString(), True) 
End Sub