通过jQuery .append()附加ASP.Net元素

时间:2012-10-10 15:09:39

标签: c# jquery asp.net append

是否可以做这样的事情

$("#popupForgot").append("<asp:TextBox ID='emailTextF' runat='server' Width='200px' Text='" + $.cookie("forLogin") + "'></asp:TextBox>")

我需要将一个asp.net元素附加到div标签,该标签将具有cookie值作为其文本。我已尝试使用上面的代码,但它不起作用。

提前谢谢

4 个答案:

答案 0 :(得分:4)

不可能这样做,因为asp:TextBox是通过服务器端呈现的,而jQuery适用于客户端。

但是,您可以使用asp:TextBox控件呈现文本框,然后可以使用jQuery更改其值:

$("#emailTextF").text($.cookie("forLogin"));

<强>更新

事实证明,asp:TextBox呈现的ID不等于id参数(在asp:TextBox中使用),请尝试:

$("#<%= emailTextF.ClientID %>").text($.cookie("forLogin"));

答案 1 :(得分:2)

JQuery最终只是JavaScript代码。 Javascript代码在客户端的浏览器中运行。

ASP标签是服务器端构造;在将它们发送到客户端的浏览器之前,它们将被转换为<input type="Text"/>字段(或其他用于多行文本框的字段)。

这两个是完全独立的概念,无法真正相互影响(直接)。

如果你想通过JQuery添加文本框,它不能是一个ASP文本框,它需要是一个HTML文本框。如果你真的需要添加一个ASP文本框(你似乎不需要你在这里显示的那个),那么你需要回发到服务器来添加它。 (如果需要,可以通过AJAX异步进行回发。)

答案 2 :(得分:1)

您的代码将在浏览器中运行,这意味着您将使用asp:TextBox将不会被服务器处理。所以,简而言之,没有。

答案 3 :(得分:0)

在数据发送到客户端之前,您无法执行此操作,导致在服务器端处理ASP.NET标记 方法是:
- 之前添加这个ASP.NET控件,并通过JQuery更改它的值,
- 如果您需要添加控件动态,请使用示例html标记,并从表单中获取服务器上的数据。