2012-10-08 150 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