這是FileUpload 的缺點,在 https://dotblogs.com.tw/stanley14/2016/08/10/173019的文章中
發現 重新註冊trigger 可以解決 這個問題,
protected void Page_Load(object sender, EventArgs e)
{
Master.UpdatePanel1.Triggers.Add(new PostBackTrigger { ControlID = Button1.UniqueID });
Page.Form.Attributes.Add("enctype", "multipart/form-data");
ScriptManager.GetCurrent(Page).RegisterPostBackControl(Button1);
}
//我在網頁上多個 UpdatePanel 的寫法
foreach (Control ctl in Page.Master.FindControl("ContentPlaceHolder1").Controls)
{
//Utility.log(1, ctl.ID.ToString());
if (ctl.GetType().Name == "UpdatePanel")
{
UpdatePanel p = (UpdatePanel)ctl;
string name = p.ID.Replace("panel_", "btn_");
string type = p.ID.Replace("panel_", "");
Button btn = (Button)p.FindControl(name);
btn.Text = getStr("upload_file");
//因為fileUpload 在postback 後,上傳功能會鎖住 所以必需要重新註冊
//https://dotblogs.com.tw/stanley14/2016/08/10/173019 參考這篇 重新註冊 trigger
PostBackTrigger trigger = new PostBackTrigger();
trigger.ControlID = btn.ID;
p.Triggers.Add(trigger);
ScriptManager.GetCurrent(Page).RegisterPostBackControl(btn);
//Page.Form.Attributes.Add("enctype", "multipart/form-data");經測試,這行其實不需要
if (_attach.Rows.Count > 0)
{
attach_List(type);
}
}
}
沒有留言:
張貼留言