繁体   English   中英

“下拉列表”中的“文本输入”在Ajax Control Upload中被忽略,并且始终保持默认值

[英]Text Input from Drop Down list is ignored in Ajax Control Upload and takes default value all the time

我的网页上有一个ajax控件上载事件,该事件用于通过基于下拉列表输入创建文件夹名称来上载zip文件并解压缩zip文件夹。 当我的网页加载时,面临的问题是默认值是CEESI,它被当作每次输入的下拉列表。 如果从ajax上载下拉列表中选择了其他任何选项,则该选项不会采用所选的输入来创建文件夹名称,并且无法解压缩我的文件,因为错误表明路径不存在。 上传和解压缩仅适用于默认下拉列表输入,即c

我的Aspx来源

<asp:DropDownList ID="DropDownList1" runat="server" Font-Size="Smaller">
                                <asp:ListItem>c</asp:ListItem>
                                <asp:ListItem>n</asp:ListItem>
                                <asp:ListItem>h</asp:ListItem>
                                <asp:ListItem>f</asp:ListItem>
                                <asp:ListItem>ce</asp:ListItem>
                                <asp:ListItem>si</asp:ListItem>
                            </asp:DropDownList>

我的C#代码(aspx.cs)

protected void UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
  string path_with_file_name = null;
  try
     {
      _path = Server.MapPath("~/App_data" + "/" + get_user_data(1) + "/" + DropDownList1.Text +    "/"); 
      **//How to retrieve selected drop down list input for Ajax Upload** 
       bool isExists = System.IO.Directory.Exists(_path);
       if (!isExists)
       System.IO.Directory.CreateDirectory(_path);
       path_with_file_name = _path + e.FileName;
       AjaxFileUpload1.SaveAs(Path.Combine(_path, e.FileName));
     }
  catch (UnauthorizedAccessException Uae)
     {
       throw Uae;
     }
       UnZipper uz = new UnZipper();
       uz.Destination = _path;
       uz.IfFileExist = enIfFileExist.Overwrite;
       uz.ItemList.Add("*.*");
       uz.Recurse = true;
       uz.ZipFile = @path_with_file_name;
       uz.UnZip();
    }

您可以将选定的项目文本存储到会话状态,然后从那里读取它。

但是首先将OnSelectedItemChanged事件添加到您的下拉列表中,并设置AutoPostBack = true。

该链接解决了您的问题: http : //forums.asp.net/post/5162366.aspx

编辑:

如果用户未更改dropdownlist值,则需要将UploadComplete方法修改为以下内容:

 protected void UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        String value;
        if(Session["Value"] != null)
        {
             value = Session["Value"].ToString();
        }
        else
        {
             value = DropDownList1.SelectedItem.Text;
        } 
        //rest of your code
    }

您可以在下拉列表中设置默认的选定列表项,如下所示:

<asp:DropDownList ID="DropDownList1" runat="server" Font-Size="Smaller">
                                <asp:ListItem Selected="True" >CEESI</asp:ListItem>
                                <asp:ListItem>NEL</asp:ListItem>
                                <asp:ListItem>HORSOY</asp:ListItem>
                                <asp:ListItem>FLATOY</asp:ListItem>
                                <asp:ListItem>CEPRO</asp:ListItem>
                                <asp:ListItem>SINTEF</asp:ListItem>
                            </asp:DropDownList>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM