请帮忙,placeholder动态加载控件与JQuery回发

moonlightme 2011-07-25 02:56:47
流程如下: 我在一个服务器控件的事件中动态向placeholder中添加了一些控件,之后使用jquery将整个form回发给服务器. 此时我在服务器端获取不到placeholder中的任何一个控件. 其他页面上原本有的控件可以获取.
注: 动态加载控件后,页面源代码中可以看到.只是post回服务器placeholder.controls.count=0了

江湖救急...请帮忙
...全文
136 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonlightme 2011-07-26
  • 打赏
  • 举报
回复
谢谢回复, 我找到问题所在了. 我的控件加载事件在pageload事件之后,所有再次post回以后获取不到. 给个辛苦分~
moonlightme 2011-07-26
  • 打赏
  • 举报
回复
你看 用个简单的方法. 我在一个按钮里向一个panel中动态添加了1个控件. 用另外一个按钮调用jquery.ajaxSubmit() post了一个form回去. 在服务器端接受不到panel中的任何控件
moonlightme 2011-07-26
  • 打赏
  • 举报
回复
其实我还是没明白这个添加控件和我获取有什么关系.. 我只是在添加完成以后, 用jquery post回服务器以后获取不到了,不是添加不进去..
  • 打赏
  • 举报
回复
子页就更好办了啊,你直接添加到 ContentPlaceHolder里面不就好了(你尽管把它也当成一个特殊一点的Holder就是了)
建议你直接在ASPX里放一个空的PlaceHolder设置Visiable=false
后台要用时再Visiable=true,然后往里面添加子控件
moonlightme 2011-07-25
  • 打赏
  • 举报
回复
額 可是我当前页面是在母版页里面的, 没有form.. 这个怎么办
  • 打赏
  • 举报
回复
form1.Controls.Add(你的PlaceHolder);
  • 打赏
  • 举报
回复

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 + ", ");
});

}
moonlightme 2011-07-25
  • 打赏
  • 举报
回复
額 UniqueID是做什么的?
那么按照目前的流程怎么样才能实现我从后台可以获取到jquery post回去的这一堆控件呢.难道用request.form么
  • 打赏
  • 举报
回复
PlaceHolder本身并不会写入Html中的,Panel则会变为一个div
控件视图是由ViewState保持的
  • 打赏
  • 举报
回复
有没有给PlaceHolder一个UniqueID?

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧