可能很难看,但可以:
1)在asp:AsyncFileUpload
AsyncFileUpload1控件下方添加一个css隐藏的asp:Button 。
<asp:Button runat="server" ID="btnClick" Text="Update grid" />
2)在
Page_Load方法,删除
if (Request.Params.Get("__EVENTTARGET") =="UploadPostback")并把其块以简单的else到先前
if。
3)在
AsyncFileUpload1_UploadedComplete函数上,也删除该
if(Request.Params.Get("__EVENTTARGET") != "UploadPostback")行,但保留其中的所有内容。4)回到aspx。在网格GridView1外部放置一个asp:UpdatePanel。
<asp:UpdatePanel runat="server" UpdateMode="Conditional"> <Triggers> <asp:AsyncPostBackTrigger ControlID="btnClick" EventName="Click" /> </Triggers> <ContentTemplate> <asp:GridView ID="GridView1" ... YOUR GRID CODE REMAINS THE SAME </asp:GridView> </ContentTemplate></asp:UpdatePanel>
5)最后一步是更改
AjaxUploadComplete客户端javascript函数以使其触发回发。将其替换为以下内容:
function AjaxUploadComplete() { var btnClick = document.getElementById("btnClick"); btnClick.click();}用户选择的任何文件仅上传一次。
此处的所有更改都应在AjaxUpload.zip的AjaxUpload.aspx和AjaxUpload.aspx.cs中进行。



