我AsyncFileUpload
在网页上实现了控件。此网页要求上载的文件显示在中GridView
。
其中GridView
包含以下列:“ 文件名 ”,“ 机密 ”复选框和“ 删除 ”按钮,用于删除上载的文件。
由于AsyncFileUpload
回发不执行 整页
回发,因此我需要OnClientUploadComplete
在AsyncFileUpload控件的事件中“强制”回发,以便在上传文件后呈现gridview。
在中OnClientUploadCompleteEvent
,我使用javascript进行调用__doPostBack
。在此回发中,我仅绑定GridView并显示文件信息(我不重新保存文件)。
问题:
在AsyncFileUpload
第一次“部分”回发中,文件已按预期成功上传。在我强制执行的第二次回发中__doPostBack
,该文件被重新上传。
您可以使用显示加载进度的Google Chrome进行验证。行为如下:
-选择文件后,进度从0%递增到100%,并上传了文件。
-之后,__doPostBack
执行,您可以再次看到上传进度从0%递增到100%。
如何确保Gridview正确填充,但是文件没有上传两次?
我附上了包含该问题的示例解决方案:https
:
//www.yousendit.com/download/MzZFc2ZBNDRrYUN4dnc9PQ
可能很难看,但可以:
1)在asp:AsyncFileUpload AsyncFileUpload1
控件下方添加一个css隐藏的asp:Button 。
<asp:Button runat="server" ID="btnClick" Text="Update grid" style="display:none"/>
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中进行。
考虑规范的示例: 单击按钮使每个状态打印两次。为什么呢?
我正在尝试实现一个仅将输入限制为大写字符[A-Z0-9]和数字。 我从某篇文章开始使用InputFilter方法。但我在三星Galaxy Tab 2上遇到了一个问题,但在模拟器或Nexus 4上没有。 问题是这样的: 当我键入“A”时,文本显示为“A”很好 现在,当我键入“B”时,文本应该是“AB”,但它给了我“AAB”,这看起来很奇怪 简而言之,它重复字符 以下是我正在使用此代码的代码: 文件代
问题内容: 我在UpdatePanel的ListView中有一个LinkButton。我希望按钮(好吧,其中的任何一个)引起部分回发,但它们却引起整个页面的回发。 我在stackoverflow上发现了另一条建议添加此内容的帖子: 没什么不同… 也有一些其他类似的帖子,但是我找不到解决方案!有任何想法吗? 问题答案: ASP.NET 4中的ClientIDMode设置使您可以指定ASP.NET
我正在尝试使用一个需要双向ssl身份验证的web服务,它属于一家公司X。我在axis2中创建了一个客户端,并将其配置为支持https(将服务器证书导入信任库,设置密钥库路径..等等)。当我调用它时,我不允许读取超时异常。我应该提到的是,握手是通过的,关于证书没有例外(我已经处理过)。 我做了以下工作(单独和组合): -使用了axis2的壁垒, -调低了我计算机上的防火墙, -绕过了我公司的防火墙(
问题内容: 我有一个中型的Elasticsearch索引(1.46T或〜1e8文档)。它在4台服务器上运行,每台服务器在弹性和OS(用于缓存)之间平均分配64GB Ram。 我想尝试新的“重要条款”聚合,因此我触发了以下查询… 哪个应将指定的文档的主体与索引的其余部分进行比较,并找到对文档有意义的,索引中不常见的术语。 不幸的是,这总是导致 ElasticsearchException [org.
问题内容: 快速的问题,我已经尝试自己弄清楚这一点,但是在试图弄清页面为什么或如何重新加载以及正在/不应该执行其应做的工作时,使用会话变量可能会造成混淆。 在任何(非脚本)情况下,页面重新加载(使用JavaScript,f5,ctrl + f5,浏览器重新加载按钮等)是否会导致表单重新发布? (这与在C#代码中使用IfPost分支有关,例如下面的示例代码): 我只是需要知道在这里期望什么,以便可以