在ASP.NET代码隐藏中访问客户端动态控件

blu*_*sdd 4 javascript asp.net

嗨,我正在尝试访问在事件中动态创建的html控件,但我无法访问它.

我正在使用以下代码使用Javascript在客户端创建元素:

function addInput(field)
{
...declaratives... 

var input = document.createElement("input");
input.id = field+count;
input.name = field+count;
input.type = "text";

... remainder of the code and the element is added to the DOM...

}
Run Code Online (Sandbox Code Playgroud)

我在页面上也有一个服务器控件(一个名为Button1的按钮),我想要做的是当用户点击按钮时我想查看用户已在动态创建的输入框中输入的详细信息将它们存储在数据库中.但是,如果protected void Button1_Click(object sender, EventArgs e)我无法访问输入字段.

这可能吗 ?

我正在使用VS 2010 C#(v4.0).

RPM*_*984 7

那么你通过JavaScript添加客户端HTML控件 - ASP.NET将不会看到它们(它们不是runat = server,这需要渲染时间,而不是在页面加载后).

你可以做的是为你的所有元素(你已经完成)添加"name"属性,然后当你提交表单(点击Button)时,你可以通过Request.Form集合检查表单元素.

protected void Button1_Click(object sender, EventArgs e)
{
   var inputValue = Request.Form["someId"];
}
Run Code Online (Sandbox Code Playgroud)

您可能还需要设置AutoPostBack="true"按钮,以便在单击按钮时提交表单.

HTH