1

私のHTMLページでは、javascriptを使用してループ内にいくつかのテキストボックスを作成します。

ループ内からのコードスニペット:

var row = myTable.tBodies[0].insertRow(rowCount);
var cell1 = row.insertCell(0);
cell1.style.width = '40%';
var element1 = document.createElement("input");
element1.type = "text";
element1.className = 'textSub';
element1.id = 'txtOndNr' + rowNr;
cell1.appendChild(element1); 

送信ボタンを押すと、サーバー側の値にアクセスできないようです。サーバーコントロールなどではないことは承知していますが、request.form( "id")を介してアクセスしたいと思いました。また、firebugをチェックすると、これらの値はpost値に含まれていません(コントロールはフォームタグ内にありますが、問題ではありません)。

誰かが私が間違っていることを知っていますか?

追加情報:ASP.NET 1.1、スクリプトはASCXにあります

4

2 に答える 2

4

Asp.netは、asp.netによって作成されたコントロールの状態のみをビューステートに保持しますhidden field to store the state of newly created controls状態/データのためにサーバー上のその隠しフィールドを使用し、後でアクセスする必要があります。

HTMLで

<input type="hidden" runat="server" id="hdnFornewlyCreated" />

JavaScriptで

document.getElementById('<%= hdnFornewlyCreated.ClientID %>').value = "stringcontainState";

コードビハインド

string state = hdnFornewlyCreated.Value; // Use this to extract state and data
于 2012-11-26T08:58:50.950 に答える
0

フォームの値を送信するために使用されるのはIDではなく、NAMEであることがわかりました。に変更element1.id = 'txtOndNr' + rowNr;するelement1.name = 'txtOndNr' + rowNr;と、Request.form( "txtOndNr0")を使用してこれらの値にアクセスできます。

firebughttppostリクエストをチェックすると次のようになります

txtOndNr0   qsdf
txtOndNr1   
txtOndNr2   qsdf

私には、これは少しクリーンなソリューションのように見えます。

于 2012-11-26T09:31:30.420 に答える