2015-05-25 29 views
0

有没有在果园中自定义小部件之间相互通信的方法?果园中的小部件之间的通信

情景: -

假设: - 我们有一个小窗口名老师。可以添加学生姓名。在同一页面上,我们有第二个部件名称学生。而教师添加新的学生名称时,它会显示在同一页面上的第二个小部件(学生)中。在第二页,我们也拖动了学生小部件,它也应该用新值更新.i不会在数据库中存储值。请帮助我。 在此先感谢。

+0

他们为什么需要单独的小部件?为什么他们甚至需要小部件?第一个小部件从哪里获取数据?为什么第二个人不能从同一个地方获取数据? –

+0

@Bertrand Le Roy 3其实我有这样的要求。手段。当第一个小部件用新值更新时,所有其他小部件都应该用新值更新。多一个场景: - 我们有第一个小部件,如日期和时间范围。而我从第一个小部件更新日期时间并导航到下一页。下一页具有相同的小部件.next页面小部件字段应该自动更新为在最后一页选择的值。希望你能忍受我的担忧。我是新手,果园不知道它的大部分功能。你可以建议我任何其他方式在果园做这件事谢谢 –

+0

所有的小部件都从某处获取他们的数据。我建议的是,您的小部件不会从其他小部件获取数据,而是从共同的基础通用数据源获取数据。这样,小部件之间就不需要通信了。 –

回答

0

果园没有任何东西具体要做到这一点,但如果你想这样做,它也没有得到你的方式。

我们在一些小部件中有类似的内部通信。我们通过向窗口小部件添加一个特定的属性(可以通过编辑窗口小部件来更改)来完成此操作,在此输入要链接到的窗口小部件的名称。在我们的例子中,我们使用的小部件共享一个JSON对象(链接的小部件现在知道它所链接的小部件的名称,因此我们可以计算出如何获取JSON对象)。然后,我们使用一个可观察的风格的JS框架(我相信我们的前端开发人员正在使用牵线木偶,但挑选你的味道)。如果Widget A或Widget B更新JSON对象,那么由于JS框架的工作原理,HTML会自动更新。这给出了很好的“交互式”小部件。

或者 - 如果你只在加载时间关心链接,那么这两个部件应实施IDependency(如IMyService)说:“每个请求”是一个接口提取数据,然后你可以轻松地共享数据路服务器侧。

我从你的意见猜测伯特兰,你正在寻找我列出的第一个选项。

我敢肯定,你可以进一步深入这些概念,并获得SharePoint的“链接部分”框架,只要你链接相同数据类型的输出/输入,它允许链接,但这将是相当困难去完成。

+0

谢谢@Paul Devenney我同意你使用IDependency。我看过IRouteProvder,它也以相同的方式共享数据。但通过这种方式,我们需要每次都在列表中添加数据,因为它们在Route.cs文件中进行添加固定路由。但在我的情况下,数据即将动态发布,我不知道哪些数据会成为下一个值。我们可以申请在这种情况下,请帮助我。 –

+0

如果你的数据是“动态的”(没有新的页面请求),那么我提到的JavaScript方法应该是适当的。或者从服务器请求中填充共享JSON对象,然后进行js过滤,或者异步加载所有内容(在这种情况下,该控件实际上是某个脚本的一个框)。 IRouteProvider不是特别相关的(除了实现IDependency。如果你想要动态数据,那么从你的数据源获取它,你编写的用于实现你自己的界面的代码是你自己控制的! 。如果你更好地澄清你的问题,我可以帮助 –

+0

当然,假设我们有一个带有两个字段“StartDate,Enddate”的小部件,并且在同一页面上有第二个小部件,并带有网格控件来显示雇员列表。当用户将从第一个小部件中选择日期。第二个窗口小部件网格应该自动更新,从第一个窗口小部件中选择日期。如果第二页包含员工列表小部件并导航到第二页,则它应该也会根据上一页中选定的日期进行更新。希望现在对你清楚。感谢您的回复 –