首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >问题掌握网件沟通

问题掌握网件沟通
EN

Stack Overflow用户
提问于 2009-09-29 22:36:57
回答 1查看 183关注 0票数 0

我很难理解一些web部件通信代码,以及如何根据需要使其工作。我对网络部件相当陌生,所以我觉得我已经把它复杂化了。

我有过

代码语言:javascript
复制
public interface IFormTypeRID
{
    int FormTypeRID { get; }
}

对于这个页面,我在左边有一个ListControl,它是一个web部件。当您选择具有此列表控件的内容时,它会回发并将此接口发送到MainForm web部件,因此我在接收端具有以下内容:

代码语言:javascript
复制
private IFormTypeRID theProvider;

[ConnectionConsumer("FormTypeRID Consumer", "FormTypeRIDConsumer")]
public void InitializeProvider(IFormTypeRID provider)
{
    theProvider = provider;
    FormTypeRID = theProvider.FormTypeRID;
}

现在,我的问题是InitializeProvider发生在Page_Load之后。

这意味着当从MainForm when部件内部回发时,FormTypeRID永远不会被发送进来。嗯,这很容易,只需将其存储在视图状态或隐藏字段中即可。

但问题就在这里。

如果FormTypeRID是在PageLoad之后,我该如何处理设置它。目前,我只有一个setter方法来调用适当的函数。但是,这很麻烦,因为setter中的代码必须执行两次。这是因为必须在FormTypeRID中设置Page_Load,因为不知道我们的提供者是否会给我们FormTypeRID (因为我们不知道回发是因为另一个we部分,还是因为FormMain)。

我知道我解释得很糟糕。但基本上,您如何从一个webpart(提供者)或另一个webpart(消费者)判断是否发生了回发(因此也是一个page_load)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-30 23:06:58

所有这一切的答案是不平凡的。

最后,我编写了我自己的"webpart通信“,它实际上比ASP.NET的要干净得多,而且它在Init和Load等过程中都能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1495314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档