2012-10-08 44 views
0

好的,在這裏打我的腦袋。似乎有很多關於此的討論,但我認爲我需要更詳細地分解它。我想創建一個帶有樹形視圖的模式對話框,允許用戶進行某些交互(複選框),然後在用戶單擊對話框上的確定時在主頁面上設置一個字段。不完全確定如何做到這一點。帶動態內容的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") 
        } 
       } 
      } 
     ) 
    }); 
}); 

但我無法弄清楚如何1)點擊按鈕2)負載樹視圖從數據庫3)打開對話框

我有一直在研究兩種方法,但無法讓其工作。

方法1:使用ajax。但是,我以什麼格式返回數據以綁定到樹視圖以及如何從腳本綁定樹視圖。

方法2:將在單獨的用戶控制對話框的內容,然後設置對話框加載用戶控制

哪種方法去追求,然後需要一些幫助,以解決該方法的工作...

感謝

編輯

我建立一個查詢生成器。用戶從可用實體的下拉列表中選擇實體。用戶點擊「Build Select Statement」按鈕。出現一個對話框,將所選實體的樹視圖作爲父節點以及實體中所有字段的子節點。用戶檢查他們想要包含在select語句中的每個字段,然後單擊確定。對話框關閉,'Select Statement'文本框中填充格式化爲實體數據源ESQL語句([。field1],[。field2]等)的選中字段。)

代碼發佈上面打開對話框,但我們沒有內容(因爲我沒有綁定任何數據,我可以硬編碼數據,但我希望用戶能夠選擇使用哪個實體,這意味着樹的數據源視圖必須是動態的,現在,我還沒有能夠得到這兩種方法的工作沒有錯誤,但沒有對話中使用(按鈕點擊什麼都不做)

+0

困惑..can你更多地討論你想達到什麼什麼錯誤,你現在越來越...頂ü說,你可以用一個按鈕來打開對話框的onclick,並在底部你說你想找出如何3)打開Dialog? – Scorpio

+0

看到上面的編輯...希望有所幫助。 –

回答

-1

解決辦法:。

在代碼生成對話框後面而不是腳本,然後註冊腳本PT。所以,我創建了一個方法:

''' <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