2

jqueryを使用してdivStaffに行を動的に追加します。

$("span[id$='lblAddStaff']").click(function() {
        //$(".staff_tpl").find("input[id$='txtRate']").val("0,00");
        var staff_row = $(".staff_tpl");
        staff_row.find(".staff_row").attr("id", "Emp" + counter);
        $("div[id$='divStaff']").append(staff_row.html());
        counter += 1;            
    });

追加する行は、class="。staff_tpl"を使用して非表示のdiv内にあります。このdivの内容をdivStaffに追加します。

ページを送信すると(ポストバック)、次のように表示しようとすると、結果のdivStaffは常に空になります。

lblTest.Text = divStaff.innerHtml.ToString

基本的に、私はdivクライアント側を操作しており、aspxページのコードビハインドを介してサーバー側にアクセスしたいと考えています。ここでは基本的な原則が欠けていると思います。

4

1 に答える 1

1

これはできません。
ページで作成したデータにアクセスする場合は、入力フィールド内に配置し (おそらく非表示)、投稿後に を使用してアクセスする必要がありますRequest.Form["MyHiddenFieldName"]
<div>s はサーバーに投稿されません。runat="server"要素は ViewState (実際には大きな文字列です。ページのソースで確認できます) にエコーされ、連続性の抽象化 (またはその錯覚) を与えます。ただし、そのスティングは、DOM で行った変更を認識しません。要素
を扱うとき、サーバー側で行った最後の変更が表示されますが、クライアント側の変更は失われています。 のみ(およびテキスト領域、オプションなど)runat="server"
<input> 値は送信時にサーバーに投稿されるため、クライアントでこれらを変更すると、ページが投稿された後にサーバーに表示されます。

于 2009-09-15T08:53:34.393 に答える