最近用到FileUpload控制元件上傳資源,需要在本地選擇資源時為一個文字框賦值,將選擇本地資源的路徑名稱賦值給文字框內,由於FileUpload控制元件並沒有事件,所以現在我們所能用到的只能是教本觸發事件來達到我們的要求,在網上找了n天資料發現有的朋友使用給FileUpload控制元件新增Attributes,來載入onpropertychange事件,具體程式碼如下(這句要在頁面載入的時候執行):
FileUpload1.Attributes.Add("onpropertychange", "test2();");
這裡的text2是在客戶端寫的JavaScript函式,內容如下:
function test2()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
if(fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="jpg"&&fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="bmp")
{
alert("請選擇jpg、bmp格式的檔案!");
}
else
{
form1.HiddenField3.value=form1.FileUpload1.value;
document.all('TextBox4').value=form1.FileUpload1.value;
}
}
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
if(fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="jpg"&&fso.GetExtensionName(form1.FileUpload1.value).toLowerCase()!="bmp")
{
alert("請選擇jpg、bmp格式的檔案!");
}
else
{
form1.HiddenField3.value=form1.FileUpload1.value;
document.all('TextBox4').value=form1.FileUpload1.value;
}
}
TextBox4為需要賦值的伺服器文字控制元件。這樣就可以實現我們的要求了。
注意:這裡因為要對選擇檔案的格式進行判斷,我們使用了var fso = new ActiveXObject("Scripting.FileSystemObject"),由於在建立Scripting.FileSystemObject時需要IE的許可權,具體配置看我前段事件寫的“automation伺服器不能建立物件 ”的文章。