繁体   English   中英

如何从SharePoint 2007中的用户控件调用webpart类文件中的方法?

[英]How do I call a method that is in the webpart class file, from a usercontrol in SharePoint 2007?

我已按照此MSDN文章中的说明进行操作: http : //msdn.microsoft.com/zh-cn/library/dd206945.aspx

是否可以从MyUserControl.ascx文件调用myWebPart.cs文件中的方法? 除非我这样做,否则我似乎对myWebPart.cs中的方法没有任何了解:

myWebpart mywbprt = new myWebpart();
mywbprt.myMethInWebPartcs();

但是,这会得到错误,并且无法编译:

Error   2   'myWebpart' is a 'namespace' but is used like a 'type'

myWebPart.cs和MyUserControl.ascx共享相同的命名空间,我认为在用户控件中调用myWebPart.cs中的方法就足够了,但是显然不是吗?

我是否缺少一些SharePoint的复杂性?

首先,看起来myWebPart所在的名称空间与Web部件具有相同的名称。 您应该更改它。 然后,您可能没有编译时错误。

您将遇到运行时错误。 如果要调用的此方法与Web部件的运行时状态交互,则很可能不应从Web部件外部调用它。

更重要的是,用户控件需要找到并调用当前处于活动状态的Web部件的特定实例,而不是创建一个新实例,这与已经在运行的实例无关。

如果该方法是静态方法(或者应该是静态方法),那么这会更好一些,但是我认为这种方法不属于Web部件内部。 应该将其移至Web部件和用户控件共享的类库。

我同意约翰所说的,我想补充以下内容...

如果您的用户控件包含在Web部件中,则您应该能够使用Parent属性并向上层次结构进行查找。 两者之间进行通信的另一种方式是注册彼此之间的事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM