如何在dnn创建类igoogle效果的模块

上传人:xiao****1972 文档编号:84217463 上传时间:2019-03-03 格式:DOCX 页数:4 大小:20.49KB
返回 下载 相关 举报
如何在dnn创建类igoogle效果的模块_第1页
第1页 / 共4页
如何在dnn创建类igoogle效果的模块_第2页
第2页 / 共4页
如何在dnn创建类igoogle效果的模块_第3页
第3页 / 共4页
如何在dnn创建类igoogle效果的模块_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《如何在dnn创建类igoogle效果的模块》由会员分享,可在线阅读,更多相关《如何在dnn创建类igoogle效果的模块(4页珍藏版)》请在金锄头文库上搜索。

1、如何在DNN创建类IGoogle效果的模块上一篇 / 下一篇 2008-08-05 14:24:18 / 个人分类:Dotnetnuke 查看( 264 ) / 评论( 3 ) / 评分( 10 / 0 ) 如果你开发过DNN模 块,你应该知道DNN每个模块都存在一个模块设置,在此你可以设置某一模块实例的相关信息,比如:模块名称,模块权限,模块容器皮肤等等。而有时你如果想 扩展模块设置,增加自己的设置项,那你可以继承ModuleSettingsBase,该基类主要存在两个方法LoadSettings和 UpdateSettings:1. 2. LoadSettingsloadsthesetti

2、ngsfromtheDatabaseanddisplaysthem3. 4. PublicOverridesSubLoadSettings() 5. getthemodulesetting6. EndSub7. 8. 9. UpdateSettingssavesthemodifiedsettingstotheDatabase10. 11. PublicOverridesSubUpdateSettings() 12. Try13. DimobjModulesAsNewDotNetNuke.Entities.Modules.ModuleController 14. 15. UpdateModule

3、Settings16. objModules.UpdateModuleSetting(ModuleId,surveyclosingdate,DotNetNuke.Common.Globals.DateToString(datClosingDate)17. 18. CatchexcAsExceptionModulefailedtoload19. ProcessModuleLoadException(Me,exc) 20. EndTry21. EndSub我 想这对于DNN模块开发是比较方便,可是我偏偏对此极为抵触,觉得有时也许仅仅只有13个设置项,可每次都得跳转到模块设置页面里边,更新完毕又跳转

4、回 来,又得重新加载页面所有东西,值得么?不就更新几个值么?如此煞费心思,对比IGoogle的模块,都是Ajax方式更新,根本不需要每次都到后台设 置。静下来琢磨一下,其实在DNN似乎也可以做到,只要借助一下UpdatePanel,而DNN核心API已对UpdatePanel封装起来,只要合 理利用即可,该封装类为DotNetNuke.Framework.AJAX,下边不妨看看如何在DNN实现类IGoogle模块的效果:1)在Page_Init事件里封装UpdatePanel,pnlLatest为目标容器,该容器里的即为你需要Ajax更新的数据列表等。1. PrivateSubWrapUpda

5、tePanel() 2. IfAJAX.IsInstalledThen3. AJAX.RegisterScriptManager() 4. AJAX.WrapUpdatePanelControl(pnlLatest,False) 5. EndIf6. EndSub2)页面脚本处理,其中需要注意的是onInvoke和onComplete这两个函数,onInvoke负责提交数据到服务器,而onComplete将在数据返回客户端,完成更新后激发。1. 2. varModule_Container; 3. functioninitContainerID() 4. if(typeof(Module_Co

6、ntainer)=undefined)Module_Container=dnn.getVar(Container_ID); 5. 6. 7. Sys.Net.WebRequestManager.add_invokingRequest(onInvoke); 8. Sys.Net.WebRequestManager.add_completedRequest(onComplete); 9. 10. functiononInvoke(sender,args) 11. initContainerID(); 12. $get(Module_Container+lstContent).style.displ

7、ay=none; 13. $get(updateProgress).style.display=; 14. 15. 16. functiononComplete(sender,args) 17. initContainerID(); 18. $get(Module_Container+lstContent).style.display=none; 19. $get(updateProgress).style.display=none; 20. 21. 22. 23. 24. 25. 26. Onupdatingtheentrieslist,plaesewaitingfor. 27. 3)更新模

8、块设置:1. PrivateSubbtnUpdate_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesbtnUpdate.Click 2. RecentEntriesMax=Convert.ToInt32(ddlEntriesMax.SelectedValue) 3. DimobjModulesAsNewModuleController 4. objModules.UpdateModuleSetting(ModuleId,LatestEntriesMax,RecentEntriesMax) 5. objModules.Upda

9、teModuleSetting(ModuleId,ContentLength,txtLengthMax.Text) 6. 7. ReBindthedatalist8. BindEntriesList() 9. EndSub解 析:从这可看出,最终还得需要UpdateModuleSetting来实现我们的功能,只不过是借助了Ajax来更新吧。也就是当点击按钮 btnUpdate提交数据时将会触发onInvoke脚本实现了Ajax方式的更新(原因就是更新操作已被封装在UpdatePanel),在此我们没 有详细讲述Sys.Net.WebRequestManager的原理机制:1. Sys.Net.

10、WebRequestManager.add_invokingRequest(onInvoke); 2. Sys.Net.WebRequestManager.add_completedRequest(onComplete);如果有兴趣可以看看官方文档。4)以上更新过程还得需要一辅助脚本dnn.js,故切记在Page_Load里添加该命名空间的注册:1. ClientAPI.RegisterClientVariable(Me.Page,Container_ID,Me.ClientID+_,True) 2. Requiresatabareminimumthednnnamespace,3. sowen

11、eedtoregisteritregardlessofwhetertheClientAPIisdisabledornot4. ClientAPI.RegisterClientReference(Me.Page,ClientAPI.ClientNamespaceReferences.dnn)进阶应用:其实你还可以控制设置项何时出现,比如一般在编辑状态才出现,否则自动隐藏。这一功能可用不同方法实现,在此我还是发扬“物进所用”精神,借助DNN的Personalization机制来控制控制设置项的呈现。1. DimModeAsString=CType(DotNetNuke.Services.Perso

12、nalization.Personalization.GetProfile(Usability,UserMode&Me.PortalSettings.PortalId.ToString),String) 2. TODO(duetotheHard-Codesnippet)3. IfMode=EditThen4. Showthesettingcontrols5. tblSettings.Visible=True6. btnUpdate.Visible=True7. EndIf关于Personalization服务,这是一个DNN极其有用的核心机制,也许以后文章会有所涉及,先不妨看看下边链接,相信你会有所收获:Lets Talk DotNetNuke User PersonalizationModule Settings and Personalization: Easily Store Data For Your DotNetNuke?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号