我使用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 = <!> quot; .staff_tpl <!> quot; 我将此div的内容附加到divStaff

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

lblTest.Text = divStaff.innerHtml.ToString

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

有帮助吗?

解决方案

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top