0

javascriptを使用してその場でasp.net要素を作成しようとしています。私はその場でhtml要素をうまく作成することができます

var _upload = document.createElement("input");

_upload.setAttribute("type", "file");

_upload.setAttribute("ID", "upload" + rownum);

_upload.setAttribute("runat", "server");

_upload.setAttribute("name", "uploads" + rownum);

いくつかの質問:

  1. これはasp.netFileUploadコントロールと同等ですか?

  2. javascriptで正確なasp.netコントロールを作成するにはどうすればよいですか?

上で作成したコントロールではできないasp.netfileuploadで何ができるでしょうか?

4

3 に答える 3

7

ASP.NETはサーバー側の言語ですが、この場合のJavaScriptはクライアント側で使用されています。この方法でクライアント側で作成された要素は、サーバー側のASP.NETには表示されません。

于 2012-06-08T14:30:30.113 に答える
4

できません。ASP.NETコントロールは、サーバー側でレンダリングされる前にコンパイルされます。そして、ブラウザはASP.NETについて何も知りません。

最善の策は、サーバーに対してajaxリクエストを実行して、コンパイルされたASP.NETコントロール(通常のHTML)を取得することです。

于 2012-06-08T14:31:22.763 に答える
2

Floriansのアイデアは便利ですが、(もちろんケースによっては)さらに簡単な修正があるかもしれません。ページをレンダリングするときにfileuploadコントロールを作成し、非表示のdiv内に配置します。次に、JavaScriptで行う必要があるのはdivを表示することだけです。

いくつかのサンプルコード(asp.netコントロールが間違っている可能性があります。使用してからしばらく経ちます):

mypage.aspx:

<div id="fileupload-div">
   <FileUpload id="myupload" runat="server" />
</div>
<button id="mybutton">Show upload control</button>

style.css

#fileupload-div { display: none }

mypage.js

$("#mybutton").click(function() {
    $("#fileupload-div").show();
});
于 2012-06-08T15:12:00.927 に答える