?? uploadprogressbar.cs
字號:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using WUSGControl.Web.Upload;
using System.Web.UI.HtmlControls;
using WUSGControl.Web.UI.WebControls;
namespace WUSGControl.Web.UI.WebControls
{
/// <summary>
/// 進度條控件, 顯示進度,并可以取消上傳
/// 可以指定上傳文件保存位置,如數據庫或文件夾
/// </summary>
[Designer(typeof(ProgressBarDesigner))]
[ToolboxData("<{0}:UploadFileControl runat=server></{0}:UploadFileControl>")]
public class UploadFileControl:WebControl,ICallbackEventHandler,INamingContainer
{
private Button _btnUpload;
//private System.Web.UI.HtmlControls.HtmlButton _btnUpload;
//用昌泡法來處理事件
private static readonly object EventButtonClick = new object();
private string GUID;
[Bindable(true)]
[Category("行為")]
[DefaultValue(true)]
[Localizable(true)]
[Description("上傳文件是否保存到文件夾,true保存到指定的文件夾,false則保存到數據庫,此時要實現指定的數據庫結口")]
public bool IsSaveFolder
{
get
{
string s = (string)ViewState["IsSaveFolder"];
return ((s == null||s==string.Empty)?true:Convert.ToBoolean(s));
}
set
{
ViewState["IsSaveFolder"] = value.ToString();
}
}
[Bindable(true)]
[Category("行為")]
[DefaultValue("\\wusg")]
[Localizable(true)]
[Description("客戶端接收上傳成功后的方法名字")]
public string SuccessFunc
{
get
{
string s = (string)ViewState["SuccessFunc"];
return ((s == null || s == string.Empty) ? "null" : s);
}
set
{
ViewState["SuccessFunc"] = value;
}
}
[Bindable(true)]
[Category("行為")]
[DefaultValue("\\wusg")]
[Localizable(true)]
[Description("上傳文件的文件夾,位置為當前web下的目錄,格式為 wusg, 則文件為上傳到該指定的文件夾下")]
public string UploadFolder
{
get
{
string s = (string)ViewState["UploadFolder"];
return ((s == null||s==string.Empty) ? "wusg" : s);
}
set
{
ViewState["UploadFolder"] = value;
}
}
[Bindable(true)]
[Category("行為")]
[DefaultValue(3)]
[Localizable(true)]
[Description("可以一次上傳文件的最大數量.")]
public int UploadFileCount
{
get
{
string s = (string)ViewState["UploadFileCount"];
return ((s ==null||s == string.Empty)? 3:Convert.ToInt32(s));
}
set
{
ViewState["UploadFileCount"] = value.ToString();
}
}
[Bindable(true)]
[Category("外觀")]
[DefaultValue("BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt; OVERFLOW: hidden; BORDER-LEFT: #000000 1px solid; WIDTH: 396px; BORDER-BOTTOM: #000000 1px solid; position:absolute; HEIGHT: 18px; TEXT-ALIGN: center")]
[Localizable(true)]
[Description("提示文本的樣式")]
public string ProgressTextInfoCssStyle
{
get
{
String s = (String)ViewState["ProgressTextInfoCssStyle"];
return ((s == null) ? "BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt; OVERFLOW: hidden; BORDER-LEFT: #000000 1px solid; WIDTH: 396px; BORDER-BOTTOM: #000000 1px solid; position:absolute; HEIGHT: 18px; TEXT-ALIGN: center" : s);
}
set
{
ViewState["ProgressTextInfoCssStyle"] = value;
}
}
[Bindable(true)]
[Category("外觀")]
[DefaultValue("float:left;OVERFLOW: hidden; WIDTH: 0%; HEIGHT: 22px; BACKGROUND-COLOR: #5fff3f;")]
[Localizable(true)]
[Description("進度條進度樣式")]
public string ProgressValueCssStyle
{
get
{
String s = (String)ViewState["ProgressValueCssStyle"];
return ((s == null) ? "float:left;OVERFLOW: hidden; WIDTH: 0%; HEIGHT: 21px; BACKGROUND-COLOR: #5fff3f;" : s);
}
set
{
ViewState["ProgressValueCssStyle"] = value;
}
}
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("WIDTH: 398px; HEIGHT: 22px")]
[Localizable(true)]
public string ProgressBarCssStyle
{
get
{
String s = (String)ViewState["ProgressBarCssStyle"];
return ((s == null) ? "WIDTH: 398px; HEIGHT: 22px" : s);
}
set
{
ViewState["ProgressBarCssStyle"] = value;
}
}
[Bindable(true)]
[Category("Behavior")]
[DefaultValue("")]
public string UploadButtonName
{
get
{
String s = (String)ViewState["UploadButtonName"];
return ((s == null) ? string.Empty : s);
}
set
{
ViewState["UploadButtonName"] = value;
}
}
///// <summary>
///// 實現接口
///// </summary>
//public bool RaisesItemChangedEvents
//{
// get { return true; }
//}
#region 控件呈現
/// <summary>
/// 重寫控件集合
/// </summary>
public override ControlCollection Controls
{
get
{
this.EnsureChildControls();
return base.Controls;
}
}
protected override void CreateChildControls()
{
this.Controls.Clear();
_btnUpload = new Button();
//執行上傳事件時,啟動上傳并啟動上傳進度條.
_btnUpload.Click += new EventHandler(this.UploadEvent);//包含法事件處理
//_btnUpload.CommandName = "ButtonClick";//昌泡法事件處理 重寫OnBubbleEvent方法
_btnUpload.Text = this.UploadButtonName;
_btnUpload.ID = "btnUpload";
//_btnUpload.Attributes.AddAttributes(
//this.UploadButtonName = _btnUpload.UniqueID;
this.Controls.Add(_btnUpload);
}
protected override void OnPreRender(EventArgs e)
{
#region 注冊客戶端需所腳本
string script = string.Concat(
"<script language=\"javascript\" type=\"text/javascript\"> var iTimerID = null;\r\n",
//進度條開始
" function ProcessStar() \r\n",
" {\r\n",
" try\r\n",
" {\r\n",
" //服務器端方法注冊\r\n",
" "+ Page.ClientScript.GetCallbackEventReference(this,"", "ReciveResult", null,null,false) +"\r\n",
" }\r\n",
" catch(e)\r\n",
" {\r\n",
" alert(e);\r\n",
" }\r\n",
" }\r\n",
//堆放完成結果日志 filename=文件真實名字 size=文件盡寸難行nfilename=新文件名字,在文件夾中保存
" function PushComplete(filename,size,nfilename)\r\n",
" {\r\n",
" var file = new Object(); file.oname=filename; file.size=size; file.newname=nfilename; allCompleteInfo.push(file); \r\n",//成功后用到的參數對象的格式
" }\r\n",
//處理顯示日志到頁面
" function DisComplete()\r\n",
" {\r\n",
" var firstChild = $('tdUploadLog').firstChild;\r\n",
" while(firstChild){firstChild.removeNode(true);firstChild = $('tdUploadLog').firstChild;} \r\n",
" for(var i=0; i<allCompleteInfo.length;i++) \r\n",
" { \r\n",
" var divbtn = new divBtn('>'+ decodeURIComponent(allCompleteInfo[i].oname)+ '(' +allCompleteInfo[i].size+')',1); \r\n",
" divbtn.Frame.style.styleFloat='none'; \r\n",
" $('tdUploadLog').appendChild(divbtn.Frame); \r\n",
" \r\n",
" } allCompleteInfo.clear();\r\n",
" }\r\n",
// " //清空當前的已上傳的文件,并寫日志到頁面,并給成功方法傳值,以便下一步的處理\r\n",
" function ClearUploadedFile()\r\n",
" {\r\n",
" selFrameArea.clearAllSelFrame(); \r\n",
" var selbtnlength = fileSelButtonCollection.aryBtns.length; \r\n",
" fileSelButtonCollection.RemoveAll();\r\n",//要只有一項
// " for(var i=0;i< selbtnlength&&fileSelButtonCollection.aryBtns.length !=1;i++) \r\n",
// " { \r\n",
// " var fileSelButton = fileSelButtonCollection.aryBtns[i]; \r\n",
//// " fileSelButtonCollection.aryBtns[i] ; \r\n",
// " fileSelButtonCollection.Remove(fileSelButtonCollection.aryBtns[i]); \r\n",//if(fileSelButton.fileInput.value !='') i--;
////" var a = allSelFile; allSelFile = new Array(); \r\n",
// " \r\n",
// " } \r\n",
" var successfunc = eval('" + SuccessFunc + "'); if(typeof successfunc != 'undefined'&&typeof successfunc=='function'){ successfunc(allCompleteInfo);}\r\n",
" }\r\n",
" function ReciveResult(Result,Context)\r\n",
" {\r\n",
" try\r\n",
" { \r\n",
" iTimerID = window.setTimeout(\"ProcessStar()\",1000);\r\n",
" eval(Result);\r\n",
" }\r\n",
" catch(e)\r\n",
" {\r\n",
" alert(e);\r\n",
" }\r\n",
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -