找到Javascript添加的元素

时间:2013-10-07 08:40:41

标签: c# javascript asp.net .net-4.0 webforms

我有一个ASP-Site,它允许用户添加Label-Elements。我不知道添加了多少标签或者他们有哪些ID。我只知道,他们将在Panel pnl_Added中。在用户添加了所有标签后,他按下发送按钮进行更新。

所以,现在我在我的服务器上,等待这个回发,但我不知道在哪里,何时以及如何找出哪些元素被添加到pnl_Added。有人可以帮帮我吗?

我尝试过类似的东西:

protected void Page_Load(object sender, EventArgs e)
{
[...]
for (int i = 0; i < pnl_Added.Controls.Count; i++)
        {
            [...]
        }
[...]
}

但是我认为由于加载了ViewState,为时已晚?这可能吗?

我正在使用VS 2013,ASP c#和.Net Framework 4。

2 个答案:

答案 0 :(得分:0)

你应该更深入一个杠杆并从Request变量中获取添加的元素,因为控件pnl_Added不知道它们,因为没有回发。

这样的事情:

Request.Form["field_id"]

我建议以调试模式运行页面,查看Request.Form集合并找到所需内容。你应该在那里看到你的标签元素。

答案 1 :(得分:0)

在服务器上,控件树不是从实际客户端HTML创建的。实际上,除了提交表单范围内的input标记值之外,服务器对客户端HTML一无所知。通常,Page_Load方法中可用的所有控件都是从aspx文件标记在服务器端创建的。

要实现您的方案,您需要为每个标签添加隐藏字段,从客户端添加并将标签的内部文本保存到隐藏字段的值中。然后你就可以得到这些标签文本如下:

var labels = Request.Form["hiddenField's name"] as string[];