基于下拉选择asp.net的多ajax文件上传

时间:2013-01-23 04:59:09

标签: c# asp.net ajax file-upload ajaxcontroltoolkit

基于下拉列表我正在获得价值并且需要用于ajax文件上传,现在的问题是我正在获得正确的价值,我正在使用两个ajax文件上传(ajaxUpload1_OnUploadComplete& ajaxUpload2_OnUploadComplete),每当我点击用于从控件上传文件的上传控件转到一个上传方法(ajaxUpload1_OnUploadComplete)仅用于上传文件。我需要一个解决方案。提前谢谢。

在.cs

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {

        Session["Value"] = DropDownList1.SelectedItem.Text;
    }

protected void ajaxUpload1_OnUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        String value = Session["Value"].ToString();
    }

 protected void ajaxUpload2_OnUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        String value1 = Session["Value"].ToString();
    }

在.aspx

 <asp:AjaxFileUpload ID="AjaxFileUpload1" AllowedFileTypes="jpg,jpeg" MaximumNumberOfFiles="10" ThrobberID="1" ContextKeys="1"  OnUploadComplete="ajaxUpload1_OnUploadComplete" runat="server"/>

 <asp:AjaxFileUpload ID="AjaxFileUpload2" AllowedFileTypes="jpg,jpeg"  ThrobberID="2"  MaximumNumberOfFiles="10" ContextKeys="2" OnUploadComplete="ajaxUpload2_OnUploadComplete" runat="server" />

2 个答案:

答案 0 :(得分:2)

我认为它是AjaxFileUpload中的一个错误我之前询问过这个问题并且从来没有得到任何回复,除了工作解决方法这里是解决方案。

private string ContextKey = "";
public AjaxFileUpload()
            : base(true, HtmlTextWriterTag.Div)
        {
            if (HttpContext.Current.Items["lastAjaxFileUploadContextKey"] == null)
            {
                HttpContext.Current.Items["lastAjaxFileUploadContextKey"] = 1;
            }
            else
            {
                HttpContext.Current.Items["lastAjaxFileUploadContextKey"] = (int)HttpContext.Current.Items["lastAjaxFileUploadContextKey"] + 1;
            }

            ContextKey = HttpContext.Current.Items["lastAjaxFileUploadContextKey"].ToString();
        }

答案 1 :(得分:1)

我也遇到了同样的问题,所以我只删除了第二个Ajaxfileupload控件,然后根据下拉列表选择值上传文件。我只是使用单个文件上载控件,并添加Dropdownlist selectedindexchanged事件,因为你设置路径是否为。