0

我有一个 ASP 站点,它使用户能够添加标签元素。我不知道添加了多少标签或它们有哪个 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而为时已晚?那可能吗?

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

4

2 回答 2

0

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

像这样的东西:

Request.Form["field_id"]

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

于 2013-10-07T09:41:53.900 回答
0

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

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

var labels = Request.Form["hiddenField's name"] as string[];
于 2013-10-07T12:25:27.627 回答