欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

postbackurl 用户控件页面传值总结 - 编程开发资料库

更新时间: 2015-05-03 00:00:00 责任编辑: Author_N12

 

PostBackUrl 用户控件页面传值总结
今天在调试邮件发送的时候,发现了Get传递数据的最大值问题,查看

了有关资料说Get方式最大的传递值为2k(包括URL字符)。
因此只能修改代码,换别的方式。本来计划使用POST方式,但是Post方

式无法获取用户控件中的信息,所以此方法作罢。

以下介绍使用Asp.Net 2.0的新特性PostBackUrl进行页面见传值。

一 调用普通控件信息
1 源页面
<asp:Button ID="Button1" Runat="server"

Text="PostToAnotherPage" PostBackUrl="~/Test.aspx" />
2 被提交的页面
如果是普通的控件只需要以下方法即可:
if (PreviousPage != null)
{
TextBox textBox1 = (TextBox)

PreviousPage.FindControl("TextBox1");
Response.write(textBox1.Text );
}

二 调用用户控件信息
1 继承方式
(1) PostDataBase.cs
using System.Collections.Generic;

/// <summary>
/// PostDataUrl方式页面传值抽象类
/// </summary>
public abstract class PostDataBase : System.Web.UI.UserControl
{
public abstract string CheckedORGString { get;}

public abstract string CheckedORGNameString { get;}

public abstract List<string> CheckedOrgCodeList { get;}

public abstract List<string> CheckedOrgNameList { get;}
}

(2) UserControl.ascx.cs代码
public partial class Controls_UserControl :PostDataBase
{
/// <summary>
/// 获取TreeView选中的单位代码
/// </summary>
public override string CheckedORGString
{
get
{
//Some Codes
}
}

/// <summary>
/// 获取TreeView选中的单位名称
/// </summary>
public override string CheckedORGNameString
{
get
{
//Some Codes
}
}

/// <summary>
/// 获取TreeView选中的单位代码
/// </summary>
public override List<string> CheckedOrgCodeList
{
get
{
//Some Codes
return itemList;
}
}

/// <summary>
/// 获取TreeView选中的单位名称
/// </summary>
public override List<string> CheckedOrgNameList
{
get
{
//Some Codes
return itemList;
}
}
}
(3) Test.aspx.cs代码
/// <summary>
/// 获取父页面的单位信息
/// </summary>
protected string OrgCodes
{
get
{
//return PreviousPage.GetOrgCodes;//方式一
if (ViewState["OrgCodes"] != null)
{
return ViewState["OrgCodes"].ToString();
}

if (PreviousPage == null)
{
return string.Empty;
}
PostDataBase hid = PreviousPage.Form.FindControl

("ContentPlaceHolder1").FindControl("orgTree") as

PostDataBase;
if (hid == null)
{
return string.Empty;
}
else
{
ViewState["OrgCodes"] = hid.CheckedORGString;
return hid.CheckedORGString;
}
}
}

注意:
如果有模版页嵌套则使用
PostDataBase hid = PreviousPage.Form.FindControl

("ContentPlaceHolder1").FindControl("orgTree") as

PostDataBase;
如果没有则使用
PostDataBase hid = PreviousPage.Form.FindControl("orgTree") as

PostDataBase;

2 实例类方式
(1) Source.aspx.cs代码
定义获取用户控件数据的属性
public string GetOrgCodes
{
get
{
string orgCodeList=orgTree.CheckedORGString;
if (orgCodeList.Trim().Length==0)
{
return string.Empty;
}
else
{
return orgCodeList;
}
}
}

(2) Test.aspx页
<%@ PreviousPageType VirtualPath="Source.aspx" %>
使用PreviousPageType注册后,可以再后台代码中使用智能提示(如果

没有智能提示,编译后再试就有了)

(3) Test.aspx.cs代码
/// <summary>
/// 获取父页面的单位信息
/// </summary>
protected string OrgCodes
{
get
{
return PreviousPage.GetOrgCodes;
}
}

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2015-05-03 00:00:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/1395038/
本文WWW.DOC100.NET DOC100.NET版权所有。