2014-10-17 35 views
2

我的页面上有一个jQuery UI对话框。它只包含一个asp FileUpload控件:jQuery中的FileUpload对话框,hasfile假

<asp:FileUpload runat="server" ID="fuAttachment" /> 

该对话框有1个按钮“OK”。这些按钮只是关闭对话框

$("#attachment-dialog").dialog({ 
      height: 300, 
      width: 400, 
      modal: true, 
      resizable: false, 
      autoOpen: false, 
      buttons: { 
       "OK": function() { 
        $(this).dialog("close"); 
       } 
      } 
    }); 

当按下我的页面上的保存按钮。哪个是调用SaveAttachement方法的asp.net按钮。

问题是fuAttachment.HasFile(fileupload控件)一直返回false。 如果我将jQuery UI对话框之外的fileupload控件移出。 HasFile = true。

但是控件应该在对话框中。在特定页面内没有更新面板。

+1

只是一个猜测,但jq.dialog可能会将您的上传输入移动到它所属窗体的外部,并将其附加到dom中的其他地方。解决方案将包括对话框中的整个

。 – wwwmarty 2014-10-17 13:30:09

+0

@wwwmarty该建议不适用于ASP.NET Web窗体,因为Web窗体只能有一个窗体并且该窗体必须包含所有服务器端控件。 – mason 2015-09-11 13:00:06

回答

5

由于对话框位于表单之外,因此出现问题。

jQuery UI对话框有一个appendTo参数,用于确保对话框是表单的一部分。

$("#attachment-dialog").dialog({ 
      appendTo: "form", 
      height: 300, 
      width: 400, 
      modal: true, 
      resizable: false, 
      autoOpen: false, 
      buttons: { 
       "OK": function() { 
        $(this).dialog("close"); 
       } 
      } 
    });