流程如下: 我在一个服务器控件的事件中动态向placeholder中添加了一些控件,之后使用jquery将整个form回发给服务器. 此时我在服务器端获取不到placeholder中的任何一个控件. 其他页面上原本有的控件可以获取.
注: 动态加载控件后,页面源代码中可以看到.只是post回服务器placeholder.controls.count=0了江湖救急...请帮忙
注: 动态加载控件后,页面源代码中可以看到.只是post回服务器placeholder.controls.count=0了江湖救急...请帮忙
控件视图是由ViewState保持的
那么按照目前的流程怎么样才能实现我从后台可以获取到jquery post回去的这一堆控件呢.难道用request.form么
protected void Page_Load(object sender, EventArgs e)
{
var pnl1 = new PlaceHolder() { ID = "ph1" };
form1.Controls.Add(pnl1);
for (int i = 0; i < 10; i++)
pnl1.Controls.Add(new TextBox() { ID = "txt" + i, Text = i.ToString() });
}protected void btnAdd_Click(object sender, EventArgs e)
{
(form1.FindControl("ph1") as PlaceHolder).Controls.Cast<Control>().ToList().ForEach(
c =>
{
Response.Write((c as TextBox).Text + ", ");
});}
建议你直接在ASPX里放一个空的PlaceHolder设置Visiable=false
后台要用时再Visiable=true,然后往里面添加子控件