PostBackUrl传递用户控件值,在接收页面如何接收值

sftl25789 2008-10-06 11:28:00
我在From.aspx引用了自己定义的用户控件,通过PostBackUrl传递到另一个页面,调试的时候完全正常,但是发布网站的时候却说
找不到类型或命名空间名称“controls_highesttitle”(是否缺少 using 指令或程序集引用?)

From.aspx通过一个按钮的PostBackUrl属性将用户控件<HighestTitle:HighestTitle ID="txtPersonHighestTitle" runat="server" />选择的值传递到To.aspx页面上。

我想在To.aspx页面调用此值,程序如下:
ASP.controls_highesttitle_ascx SourcePersonHighestTitle = (ASP.controls_highesttitle_ascx)Page.PreviousPage.Form.FindControl("Search_MainSpace").FindControl("txtPersonHighestTitle");
PersonHighestTitle = SourcePersonHighestTitle.Text; //接收值
错误信息指向的就是这句话。

我在调试程序的时候没有问题,值可以正常的传递,但是只要一发布网站就会出错。请问怎么解决呀?

From.aspx和To.aspx的aspx页面上都引用了这个控件<%@ Register Src="~/Controls/HighestTitle.ascx" TagName="HighestTitle" TagPrefix="HighestTitle" %>
...全文
207 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
popule_daisy 2008-10-06
  • 打赏
  • 举报
回复
从a页面传值到b页面,直接传参数就可以了呀。

a页面:b.aspx?num=5
b页面:Request["num"]

这样就可以取道啦。。
  • 打赏
  • 举报
回复
[Quote=引用楼主 sftl25789 的帖子:]
ASP.controls_highesttitle_ascx SourcePersonHighestTitle = (ASP.controls_highesttitle_ascx)Page.PreviousPage.Form.FindControl[/Quote]

怎能在代码中直接引用 ASP.controls_highesttitle_ascx 呢,这是一个不确定编译顺序的类型。

你可以添加类似以下的代码:

public abstract class base_highesttitle
{
public abstract string Text{get;}
}

或者

public interface Ihighesttitle
{
string Text{get;}
}


然后,让你的控件从它继承。

而调用方是:
Ihighesttitle SourcePersonHighestTitle = (Ihighesttitle)Page.PreviousPage.Form.FindControl

类型声明为Interface或者abstract class。
周公 2008-10-06
  • 打赏
  • 举报
回复
从源页获取公共属性值
1。在源页中,创建一个或多个公共属性。

下面的代码示例演示一个名为 CurrentCity 的属性,该属性公开名为 textCity 的 TextBox 控件的值。

public String CurrentCity
{
get
{
return textCity.Text;
}
}

2。在目标页上,添加一个指向源页的 @ PreviousPageType 页面指令。

下面的代码示例演示一个引用名为 SourcePage.aspx 的源页的 PreviousPageType 指令。

<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>


PreviousPageType 指令会导致页的 PreviousPage 属性被类型化为源页类。

3。在目标页代码中,使用 PreviousPage 属性的强类型成员读取源代码属性。

下面的代码示例读取源页中定义的 CurrentCity 属性的值。

Label1.Text = PreviousPage.CurrentCity;
周公 2008-10-06
  • 打赏
  • 举报
回复
if (Page.PreviousPage != null)
{
TextBox SourceTextBox =
(TextBox)Page.PreviousPage.FindControl("TextBox1");
if (SourceTextBox != null)
{
Label1.Text = SourceTextBox.Text;
}
}

这样也是可以的。
周公 2008-10-06
  • 打赏
  • 举报
回复
从a页面传值到b页面,直接传参数就可以了呀。

a页面:b.aspx?num=5
b页面:Request["num"]

这种方式是可以的。

62,046

社区成员

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

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

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

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