请问一个关于ascx控件文件 与aspx之间方法传递的问题

a8768182 2014-01-21 03:51:46
以下简称 aspx页为 A页面 ascx为B页面
我现在想实现这么一个效果 点击B页面的一个按钮执行A页面传递过来的一个方法,资料看的比较多 感觉只有委托能比较好的实现这个效果 但是 由于webnet是没有状态的A页面传递过来的方法在load后就没有了,我尝试使用viewstate来存储但是,但后来查资料发现viewstate只能存储有序数据 例如int string等类型 不能存储方法 请问各位我要如何来实现这个效果呢?
...全文
116 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
a8768182 2014-01-22
  • 打赏
  • 举报
回复
特别感谢minhua1983 KarasCanvas 2位的回答,也感谢其他网友的回答 问题解决了
种草德鲁伊 2014-01-21
  • 打赏
  • 举报
回复
楼主应该给你的用户控件定义事件和属性。
minhua1983 2014-01-21
  • 打赏
  • 举报
回复
假设 ascx里面有个button叫"按钮1" 再给ascx定义一个EventHandler委托类型的属性叫"属性1" 当ascx放到aspx后ascx叫"用户控件1" 在aspx的Page_Load方法中加入 用户控件1.属性1=方法名1 然后在ascx中Page_Load方法中加入 按钮1.click += this.属性1 这种方式的原理就是,给ascx设置一个EventHandler委托类型的属性,在aspx里面去设置ascx实例的这个属性,即把aspx里面的方法名付给ascx实例的这个属性,最后在ascx中注册click事件,并把这个属性作为click事件触发后的响应。 这种写法,你得理解事件和委托。不然不容易理解,知其然不知其所以然。 当然也可以给ascx定义一个string的属性叫"属性1",然后在aspx设置ascx实例的属性1成string类型的方法名。最后在ascx中获取string类型的方法名,通过反射这个方法名,获取aspx上的这个方法,最后绑定到ascx的按钮1的click上,不过这种方式太麻烦,性能上也没上面的方法好,所以不推荐,至于其他方法应该还有很多。
Im_Sorry 2014-01-21
  • 打赏
  • 举报
回复
引用 1 楼 liuchaolin 的回复:
通过属性来传
+1
md5e 2014-01-21
  • 打赏
  • 举报
回复
通过属性来传


62,046

社区成员

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

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

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

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