我有一个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。
答案 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[];