[英]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.