C#学习教程:在sitecore中将数据从一个子布局发送到另一个,在页面的同一层级。子布局A是一个侧边栏,其中包含一个复选框列表,并有一个用所选值填充列表的事件。子布局B显示一组项目。我想要做的是,将填充的列表从子布局A发送到子布局B,以便根据用户选择的内容过滤项目列表。我能够通过会话传递数据来做到这一点,但这不是处理数据的最佳方式。我已经尝试为子布局A定义一个属性并在那里加载列表,但我无法从子布局B获取子布局A的确切实例以读取填充的属性。此外,尝试Page.FindControl("IdOfSomeElementFromSublayoutA")总是在子布局B中返回null。尽管我已将页面转换为包含子布局的.aspx页面。我正在使用Sitecore7Update2。非常感谢您抽出宝贵时间。执行此操作的最佳方法是使用Sitecore.Events.Event类引发(和订阅)事件。您的侧边栏子布局在按钮的单击事件处理程序中引发事件:Sitecore.Events.Event.RaiseEvent("YourEventName",newYourEventArgsClass{Property="SomeValue"});然后在另一个子布局中,需要做如下设置来处理事件:publicpartialclassYourOtherSublayout:System.Web.UI.UserControl{protectedvoidPage_Load(objectsender,EventArgse){eventHandlerRef=EventHandlerMethod;Sitecore.事件。Event.Subscribe("你的事件名称",eventHandlerRef);}protectedvoidPage_Unload(objectsender,EventArgse){if(eventHandlerRef!=null){Sitecore.Events.Event.Unsubscribe("YourEventName",eventHandlerRef);}}privatevoidEventHandlerMethod(objectsender,EventArgse){if(e!=null){//在这里做事}}}注意:保留Page_Unload代码非常重要,否则你会看到EventHandler方法被多次调用次。以上就是C#学习教程的全部内容:在sitecore中将数据从一个子布局发送到另一个子布局。如果对你有用,需要了解更多C#学习教程,希望大家多多关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处:
