动态地将ASP.NET元素添加到JQuery对话框

时间:2012-03-05 06:01:47

标签: c# jquery css

我在JQuery对话框中放置了一些ASP.NET html元素(上传文件)。

我的问题:当我点击按钮上传文件时,没有任何反应。我在页面加载后动态创建查询对话框。我的解决方案是将HTML / ASP元素(用于上传文件)放在页面正文底部的div中。将其显示设置为无。

然后在打开对话框时,我将HTML / ASP元素移动到JQuery对话框中。但我的问题是,当我单击我的ASP.NET按钮从对话框中上传文件时,没有任何反应?

请注意,如果单击该按钮,则在JQuery对话框外部成功上传文件。

出了什么问题&我该如何解决?是否有更简单的方法在页面加载后将ASP.NET代码添加到JQuery对话框中?

这就在身体

<div id="test">
    <input class="ui-button ui-widget ui-state-default ui-corner-all 
       ui-button-text-only" 
      style="display: inline-block;" id="fileUpload" type="file" Runat="server" 
       NAME="fileUpload"/>

    <asp:button id="btnSave" OnClick="bt1Clicked" style="display: inline;" 
      class="ui-button ui-widget ui-state-default ui-corner-all 
                                                 ui-button-text-only" 
      runat="server" Text="Upload File" ></asp:button>

    <asp:label id="lblMessage" runat="server" style="height:20px;width:390px;"
    </asp:label> 
</div>

然后在对话框打开时,我抓住上面的HTML&amp;将其移动到对话框中:

$(this.dialog).dialog('open' function()
{
   var e = $("#test");
   $(body).remove(e);
   $(this).append(e);
});

1 个答案:

答案 0 :(得分:1)

jQuery UI对话框在结束</body>元素之前,在文档的最末端创建对话框元素。因此,当您打开对话框并将内容div#test移动到对话框中时,它就在<form>之外,并且不再适用于需要它的asp.net。

尝试创建对话框并将其移回<form>元素:

$("#myDialog").dialog({
    ...
}).parent().appendTo($("form"));