|zyciis| 如何让Page page = new Page();出来的对像给他赋当前page的Request对像,谢谢

zyciis293 2010-03-24 09:48:00
动态添加的UserControl如何能像页面正常添加的用户控件一样运行Page_Load等事件
http://topic.csdn.net/u/20100323/22/70581f24-30ba-4840-936a-aceae6c75c86.html
-----------------------------------

Page page = new Page();
//page.Request = this.Request; 这里不能这样赋值,因为他是只读的,但是我的用户控件里面要读取Request内容
System.Web.UI.UserControl control = (System.Web.UI.UserControl)page.LoadControl("/Pay/Nav.ascx");
page.Controls.Add(control);
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter wt = new HtmlTextWriter(tw);
page.RenderControl(wt);
//control.RenderControl(wt);
Response.Write(tw.ToString());

问:怎么用
Page page = new Page();
的方式后给page赋当前页的Request对像

谢谢
...全文
414 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-03-24
  • 打赏
  • 举报
回复
在实体类中可使用HttpContext.Current.Request获取
阿非 2010-03-24
  • 打赏
  • 举报
回复
动态添加的UserControl如何能像页面正常添加的用户控件一样运行Page_Load等事件
--------------------------------------------------------------------------

我已在你那个帖子回复
凤凰涅檠 2010-03-24
  • 打赏
  • 举报
回复
//page.Request = this.Request; 这里不能这样赋值,因为他是只读的,但是我的用户控件里面要读取Request内容


用户控件是放在页面中的,要什么值直接 给个用户控件设置个属性就行了,或者传参
十八道胡同 2010-03-24
  • 打赏
  • 举报
回复
可以使用 HttpRequest 对象协议规范中的集合(Page.Request等同于HttpContext.Current.Request)来检索回传的数据——对于POST方式时使用Form,GET方式时使用QueryString,或者想要兼容对Form、QueryString、 ServerVariables 和 Cookies的访问时使用Params。HttpRequest 对象会在页面创建前将数据封装,因此,页面的任何事件都可以随意调用Page.Request.对于自提交的asp.net页面,不需要使用Request是由于可以借助于一个强类型的编程模型,但是对于以前,可靠的 HttpRequest 对象依然是需要时为您而备的。

阿非 2010-03-24
  • 打赏
  • 举报
回复
使用

HttpContext.Current.Request
criedshy 2010-03-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zyciis293 的回复:]
Page
------------------
我这个Page是要new page出来的
因为我是要取得这个用户控件生成的HTML所以不能用当前的Page

谢谢
[/Quote]

那你可以用上下文获取啊

Context.Handler
Context.Current
阿非 2010-03-24
  • 打赏
  • 举报
回复
等下,我试下
zyciis293 2010-03-24
  • 打赏
  • 举报
回复
UP回复内容太短了!
zyciis293 2010-03-24
  • 打赏
  • 举报
回复
Page
------------------
我这个Page是要new page出来的
因为我是要取得这个用户控件生成的HTML所以不能用当前的Page

谢谢
十八道胡同 2010-03-24
  • 打赏
  • 举报
回复
[code=C#]using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Template2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
UserControl control= (UserControl)Page.LoadControl("Nav.ascx") ;
Page.Controls.Add(control);
}
}
}

我试验过了,这样是可以的[/code]
十八道胡同 2010-03-24
  • 打赏
  • 举报
回复
up


.
criedshy 2010-03-24
  • 打赏
  • 举报
回复
你为什么要用Request呢?
criedshy 2010-03-24
  • 打赏
  • 举报
回复
public partial class Template2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
Nav control = Page.LoadControl("/Pay/Nav.ascx") as Nav;
if(control!=null)
{
this.Controls.Add(control);
}
}
}
随风落梦 2010-03-24
  • 打赏
  • 举报
回复
Context.Handler可以获取句柄
tashiwoweiyi 2010-03-24
  • 打赏
  • 举报
回复
友情帮顶

62,074

社区成员

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

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

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

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