jquery追加+代码隐藏

时间:2009-09-15 08:47:10

标签: asp.net jquery append code-behind

我使用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;            
    });

我正在添加的行位于隐藏的div中,其中class =“。staff_tpl” 我将此div的内容附加到divStaff

当我提交页面(回发)时,如果我尝试显示它,结果divStaff总是为空:

lblTest.Text = divStaff.innerHtml.ToString

基本上,我正在操作div客户端,我想通过我的aspx页面的代码隐藏来访问服务器端。我想我在这里错过了一个基本原则。

1 个答案:

答案 0 :(得分:1)

这是不可能的。
如果要访问您在页面上创建的数据,则必须将其放在输入字段(可能是隐藏的)中,并在使用Request.Form["MyHiddenFieldName"]发布后访问它。 <div>未发布到服务器。 runat="server"元素在ViewState中被灌输(一个大字符串,真的 - 你可以在你的页面的源代码中看到它),给出连续性的抽象(或它的错觉)。但是,这种刺痛并不知道你在DOM中所做的改变 在处理runat="server"元素时,您将看到您在服务器端所做的最后一次更改,但客户端更改已消失。
只有<input> (以及文本区域,选项等)值会在提交时发布到服务器,因此在页面发布后,将在服务器上显示在客户端上更改这些值。