首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求帮助,ascx取值有关问题

2014-01-25 
求帮助,ascx取值问题P1.aspx.cs 和 P2.aspx.cs 中各定义了一个变量,例如P1中int sid 10P2中int sid 1

求帮助,ascx取值问题
P1.aspx.cs 和 P2.aspx.cs 中各定义了一个变量,

例如
P1中
int sid = 10;

P2中
int sid = 11;


我在P1.aspx和P2.aspx都调用了同一个head.ascx,可在head.ascx中却无法获取sid的值?
求帮助!!!
[解决办法]
直接建个类,把你的变量放里面,让你的用户控件和网页共享就行了
[解决办法]

引用:
P1.aspx.cs 和 P2.aspx.cs 中各定义了一个变量,

例如
P1中
int sid = 10;

P2中
int sid = 11;


我在P1.aspx和P2.aspx都调用了同一个head.ascx,可在head.ascx中却无法获取sid的值?
求帮助!!!


在设计中,设计师通常不会随便设计“相互循环依赖”的对象。

如果head.ascx是个通用服务组件,可能用在各种宿主ascx(以及aspx)中,那么它就不想当然地去纠结什么P1、P2、......Pn变化。

它通常会定义一个
public int sid{get;set;}
属性,然后让宿主把参数传给它,就好像TextBox控件它让你把Text属性传给它一样。

而如果这个值是很偶然才会用到的,也许head.ascx会重新解释这个机制,说成是“事件”。例如
public event MyEventHandler RequireSid;
然后在自定义的委托类型MyEventHandler中的自定义参数(例如第二个参数)中有一个int类型的属性,用户宿主程序响应这个事件时给它赋值。于是head.ascx可能就写
if(this.RequireSid !=null)
{
    var e = new MyEventArgument();
    this.RequireSid(this, e);
    int result = e.RetData;
    .......
}

热点排行