翻譯|使用教程|編輯:龔雪|2020-10-20 10:11:03.550|閱讀 1074 次
概述:全球銷量第一的UI控件DevExpress 2020年全新首發(fā)v20.1,最新版擁有眾多新產(chǎn)品和數(shù)十個具有高影響力的功能,可為桌面、Web和移動應用提供直觀的解決方案。本文將為大家介紹如何創(chuàng)建信息面板,歡迎大家免費下載體驗新版!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取
DevExpress Universal Subscription擁有.NET開發(fā)需要的所有平臺控件,包含600多個UI控件、報表平臺、DevExpress Dashboard eXpressApp 框架、適用于 Visual Studio的CodeRush等一系列輔助工具。要體驗?點擊下載>>
在某些情況下,可能需要在UI中創(chuàng)建其他功能區(qū)域來顯示特定數(shù)據(jù)。通過在XAF模板中包含其他控件并實現(xiàn)將數(shù)據(jù)提供給控件的代碼,可以解決此任務。 為了幫助您完成任務,XAF提供內(nèi)置的CustomizeTemplateViewControllerBase控制器以及對內(nèi)置模板的完整設計時支持。 結合使用這些功能,您可以輕松實現(xiàn)信息面板,該面板可以顯示操作、視圖以及可從View Controller訪問的任何類型的數(shù)據(jù),本文為大家介紹創(chuàng)建簡單信息面板所需執(zhí)行的步驟。
首先您需要確定要自定義的模板,在應用程序的不同部分中使用不同的模板。在本文中,將自定義Windows Forms MainForm和DetailViewForm模板以及ASP.NET DefaultVertical模板。
Windows Forms模板
內(nèi)置Windows Forms模板是位于DevExpress.ExpressApp.Win程序集中的常規(guī)類,要自定義它們,您需要在解決方案中包含相應的源代碼文件并處理XafApplication.CreateCustomTemplateevent。
ASP.NET模板
內(nèi)資的ASP.NET模板其內(nèi)容來自于位于DevExpress.ExpressApp.Web程序集中的用戶控件頁面,要自定義它們,您需要在解決方案中包含相應的源代碼文件,并修改通過WebApplication.Settings屬性公開的適當設置。
解決方案中包含所有必需的模板后,即可開始向其中添加面板控件。
將Panel Controls添加到Windows Forms Templates
要將面板控件添加到MainForm或DetailViewForm模板中,請在Solution Explorer中右鍵單擊該模板,然后選擇"View Designer"。
找到viewSitePanel控件,并將其Dock屬性從Fill更改為None。
為了確保可以正確調(diào)整模板的大小,請將SplitContainerControl的Dock屬性設置為Fill,將FixedPanel屬性設置為Panel2。
為了能夠用信息填充信息面板,SplitContainerControl必須在外部可見。 為此定義一個界面,通過該界面可以訪問信息面板,這將使數(shù)據(jù)提供控制器與特定模板類型脫鉤,相反他們將依賴接口。
public interface IInfoPanelTemplateWin : IFrameTemplate { DevExpress.XtraEditors.SplitContainerControl SplitContainer { get; } }
然后,在模板中實現(xiàn)接口。
public partial class MainForm : MainFormTemplateBase, IDockManagerHolder, ISupportClassicToRibbonTransform, IInfoPanelTemplateWin { //... public DevExpress.XtraEditors.SplitContainerControl SplitContainer { get { return splitContainerControl1; } } }
將面板控件添加到ASP.NET Web模板
要將面板控件添加到DefaultVertical模板,請右鍵單擊您添加的ASCX文件,以替代標準DefaultVertical內(nèi)容,然后選擇 "View Markup"。
將以下兩個單元格添加到MRC表。
<td id="RS" style="width: 6px; border-bottom-style: none; border-top-style: none" class="dxsplVSeparator_<%= BaseXafPage.CurrentTheme %> dxsplPane_<%= BaseXafPage.CurrentTheme %>"> <div id="RSB" class="dxsplVSeparatorButton_<%= BaseXafPage.CurrentTheme %>" onmouseover="OnMouseEnter('RSB')" onmouseout="OnMouseLeave('RSB')" onclick="OnClick('Right', 'RSI')"> <div id="RSI" style="width: 6px;" class="dxWeb_splVCollapseForwardButton_<%= BaseXafPage.CurrentTheme %>"/> </div> </td> <td id="Right" width="250px" style="vertical-align: top"> <cc3:XafUpdatePanel ID="UPRight" runat="server" /> </td>
該標記中的UPRight控件將代表信息面板。
打開ASCX的代碼隱藏文件 - 右鍵單擊該文件,然后選擇View Code。
通過公開屬性公開protected UPRight控件。
public partial class MyDefaultVerticalTemplateContent : TemplateContent { public Control PlaceHolder { get { return UPRight; } } // ... }
在ASP.NET模塊項目中,定義一個接口,控制器將通過該接口訪問信息面板。
public interface IInfoPanelTemplateWeb : IFrameTemplate { Control PlaceHolder { get; } }
在Default模板中實現(xiàn)此接口 - 編輯位于ASP.NET應用程序項目中的Default.aspx.cs文件。
public partial class Default : BaseXafPage, IInfoPanelTemplateWeb { public Control PlaceHolder { get { return TemplateContent is MyDefaultVerticalTemplateContent ? ((MyDefaultVerticalTemplateContent)TemplateContent).PlaceHolder : null; } } // ... }
現(xiàn)在,您需要實現(xiàn)Windows Forms和ASP.NET Web View Controllers,它們將為面板控件提供實際數(shù)據(jù)。為簡化此任務,XAF提供要繼承的CustomizeTemplateViewControllerBase Controller,為方便起見,TemplateType泛型參數(shù)可以是模板類型,也可以是由模板實現(xiàn)的接口。 CustomizeTemplateViewControllerBase已經(jīng)提供了模板訪問邏輯,因此您所要做的就是實現(xiàn)四個受保護的抽象方法。
注意:您可以訪問XAF模板并對其進行自定義,來為您的任務實現(xiàn)標準的ASP.NET技術(例如,使用HTTP處理程序提供動態(tài)內(nèi)容)。
DevExpress技術交流群2:775869749 歡迎一起進群討論
富文本控件難上手?這堂公開課你一定不能錯過,不同視圖不同應用場景全解!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)