本例中使用devexpress uploadcontrol來實現上傳,主要介紹如何整合到LS中的具體步驟。
1.將lightswitch項目切換到檔案檢視狀態.
2.在client工程裡添加一個自訂的控制項進來,(silverlight 中一樣的操作方式,)並實現自己需要的功能。
<controls:ChildWindow x:Class="LightSwitchApplication.Screens.SelectUploadFile"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
Width="600" Height="400"
xmlns:local="clr-namespace:LightSwitchApplication.Screens"
Title="上傳附件">
<Grid x:Name="LayoutRoot" Margin="2">
<Border Background="White">
<local:CustomUploadControl x:Name="uploadControl1" UploadServerPath="UploadFiles"
FileUploadCompleted="OnFileUploadCompleted"
TotalUploadCompleted="OnTotalUploadCompleted"
UploadItemRemoved="OnUploadItemRemoved"
UploadCancelled="OnUploadCancelled" AllowDrop="True" Width="532" FileNameFilter="所有檔案 (*.*)|*.*" FontSize="12" />
</Border>
</Grid>
</controls:ChildWindow>
CustomUploadControl 在DEVEXPRESS的基礎上重新封裝了一下,增加了上傳檔案唯一編號。
在需要上傳的地方執行如下:
partial void ShowUpload_Execute()
{
// Write your code here.
Dispatchers.Main.BeginInvoke(() =>
{
SelectUploadFile selectFileWindow = new SelectUploadFile();
selectFileWindow.uploadControl1.BeforeStartUpload += new EventHandler(dxUploadControl_BeforeStartUpload);
selectFileWindow.uploadControl1.FileUploadCompleted += new EventHandler<UploadItemEventArgs>(FileUploadCompletedHandler);
selectFileWindow.uploadControl1.UploadItemRemoved += new EventHandler<UploadItemEventArgs>(dxUploadControl_UploadItemRemoved);
var webHandlerUri = new Uri(System.Windows.Application.Current.Host.Source, "../FileUploader.ashx");
selectFileWindow.uploadControl1.WebHandlerUri = webHandlerUri; //上傳伺服器路徑,誰來處理,可參考Dev樣本
selectFileWindow.uploadControl1.UploadServerPath = uploadServerPath;
selectFileWindow.Show();
});
}
3.進入ServerGenerated,添加相關自訂處理的功能,如: downloadfile.aspx, fileuploader.ashx ,一個下載,一個上傳。具體代碼就不顯示了
4.整合剛才增加的二個功能(上傳、下載),需要LS將二個檔案進行編譯到工程中。
先將項目卸裝,然後手動編輯LS解決方案檔案。
開啟檔案,找到項目包含檔案的位置,手工加入如下:
儲存,並重新載入工程。此時我們需要的自訂的功能都整合到LS中去了,可以正常工作。一起來嘗試一下吧,