2012-03-05 29 views
0

JQueryダイアログ内にいくつかのASP.NET HTML要素(ファイルをアップロードする)を配置しています。ASP.NET要素をJQueryダイアログに動的に追加します。

問題:ボタンをクリックしてファイルをアップロードすると、何も起こりません。私はページがロードされた後に動的にクエリダイアログを作成します。私の解決策は、ページの本体の一番下のdivにHTML/ASP要素(ファイルをアップロードするため)を配置して、ディスプレイをnoneに設定します。&

ダイアログを開くと、HTML/ASP要素をJQueryダイアログに移動します。しかし、私の問題は、私がダイアログ内からファイルをアップロードするために私のASP.NETボタンをクリックすると、何も起こらないということです?

JQueryダイアログの外にあるボタンをクリックすると、ファイルが正常にアップロードされます。

よくある質問&どうすればこの問題を解決できますか?ページがロードされた後、JQueryダイアログにASP.NETコードを追加する簡単な方法はありますか?

これは体内に座っ

<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ダイアログに移動&つかむ:

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

あなたのjqueryのダイアログが現れますが、ファイルのアップロードが発生しませんか?あなたのブラウザに何かエラーがありますか? – gideon

+0

removeは、オブジェクトではなくセレクタをとります。 'e.remove();を実行してからappendするだけです。 http://api.jquery.com/remove/ よくある質問と思われます。http://stackoverflow.com/a/768163/701062 –

答えて

1

のjQuery UIのダイアログは非常に最後のダイアログ要素を作成します文書の最後の、</body>要素の直前。したがって、ダイアログを開いて内容をdiv#testに移動すると、それは<form>の外にあり、それを必要とするasp.netではもう機能しません。

あなたのダイアログを作成し、<form>要素内に戻ってそれを移動しよう:

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

ありがとうございました:D –

関連する問題