質問

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 = <!> quot; .staff_tpl <!> quot;の非表示div内にあります。 このdivの内容をdivStaffに追加します

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

lblTest.Text = divStaff.innerHtml.ToString

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

役に立ちましたか?

解決

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top