Asp.net jqueryappend+;代码隐藏
我使用jquery动态地向divStaff添加行:Asp.net jqueryappend+;代码隐藏,asp.net,jquery,append,code-behind,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);
$("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\u tpl”
我将此div的内容附加到divStaff
当我提交页面(回发)时,如果我尝试这样显示,则生成的divStaff始终为空:
lblTest.Text = divStaff.innerHtml.ToString
基本上,我正在操作一个div客户端,我想通过aspx页面的代码访问它的服务器端。我想我缺少了一个基本原则。这是不可能做到的。如果要访问在页面上创建的数据,必须将其放在输入字段中(可能是隐藏的),并在发布后使用
Request.Form[“MyHiddenFieldName”]
未发布到服务器runat=“server”
元素是在ViewState中选择的(实际上是一个大字符串——您可以在页面的源代码中看到它),给出了连续性的抽象(或者是它的幻觉)。但是,该sting不知道您在DOM中所做的更改。在处理
runat=“server”
元素时,您将看到您在服务器端所做的最后更改,但客户端更改已消失。提交时,只有
(以及文本区域、选项等)值被发布到服务器,因此在页面发布后,服务器上会看到在客户端更改这些值 我的印象是,向div添加runat=“server”和唯一的ID可以让您在服务器端访问它?不是这样吗?您可以使用服务器端的runat=“server”访问div。@phoenix-当然可以,但不能使用jQuery进行更改。我有什么地方错了吗?谢谢Kobi,你编辑的帖子澄清了很多。对DOM客户端的任何更改都不会被服务器端捕获,这是有道理的。我将尝试使用输入元素。