我正在使用ajaxFileUpload,如下所述:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AjaxFileUpload/AjaxFileUpload.aspx
除非我在同一页面上有多个文件上传控件,否则它工作正常。具体来说,我正在尝试为不同的问题上传不同的文件。当我在页面上传第一个时,它工作正常,但页面下方的那个只会将它的文件上传到第一个问题的答案中。
我不确定这是否有意义...所以它可以帮助您知道我的页面使用ascx文件动态填充问题。文档ascx文件如下所示:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Document.ascx.cs" Inherits="ScholarshipApplication.controls.questions.Document" %>
<ajaxToolkit:AjaxFileUpload OnUploadComplete="UploadComplete" ID="FileUploadControl" MaximumNumberOfFiles="1" runat="server" AllowedFileTypes="png,jpg,jpeg,pdf,tiff,tif,gif" />
<asp:LinkButton ID="downloadButton" runat="server" CausesValidation="false" OnClick="downloadButton_Click" />
背后的代码:
public void UploadComplete(object sender, AjaxFileUploadEventArgs e)
{
entry.data = e.FileName;
entry.setDocumentData(e.GetContents());
this.downloadButton.Text = e.FileName;
}
我最初的想法是,不知怎的,我需要帮助控件生成的javascript知道它应该在什么时候触发的问题。
答案 0 :(得分:0)
根据我的理解你需要一个隐藏的字段变量来识别你的问题ID在UserControl中:
<input type="hidden" id="hdnQuestionId" runat="server"/>
在填充/生成问题时,您需要设置此变量,并在上传文档时,获取此隐藏值并使用它。
答案 1 :(得分:0)
我在所有AjaxFileUpload控件上创建了一个名为“data-upload-type”的数据属性,并将其设置为该类型的名称。然后我设置客户端调用以获取该值并设置具有相同值的cookie。 cookie是在服务器端函数上接收的,我根据收到的值进行分支。
这是一个例子:
function StartUpload(sender, args) {
var t = $(sender._element).attr('data-upload-type');
document.cookie = 'upload-type=' + $(sender._element).attr('data-upload-type') + ';';
}
<asp:AjaxFileUpload ID="afuUploader1" runat="server" OnClientUploadStart="StartUpload" OnUploadComplete="UploadComplete" OnClientUploadComplete="UploadComplete" data-upload-type="UploadType2"></asp:AjaxFileUpload>
function StartUpload(sender, args) {
var t = $(sender._element).attr('data-upload-type');
document.cookie = 'upload-type=' + $(sender._element).attr('data-upload-type') + ';';
}
<asp:AjaxFileUpload ID="afuUploader1" runat="server" OnClientUploadStart="StartUpload" OnUploadComplete="UploadComplete" OnClientUploadComplete="UploadComplete" data-upload-type="UploadType2"></asp:AjaxFileUpload>
然后在服务器端上传调用,只需检查Response.Cookies(“upload-type”)。 像魅力一样工作!