I'm trying to set the upload path dynamically. But the upload tool keeps taking the first path specified to the dropdownlist. It doesnt matter if I have the dropdownlist in a seperate update panel and tell the dropdownlist to stay on the selected index if there is a postback. How would I get the upload tool to use the value selected in the dropdownlist and not first value. Below is my code:
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { foldList.SelectedIndex = foldList.SelectedIndex; } else { Allfiles(); } } public void Allfiles() { foldList.Items.Clear(); String RootFold = ConfigurationSettings.AppSettings["RootPath"]; string[] foldNames = Directory.GetDirectories(RootFold, "*", SearchOption.AllDirectories); foreach (string i in foldNames) { if (i.Contains(".") == true) { //DO NOTHING } else { foldList.Items.Add(i); } } } public void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e) { try { filePath = foldList.SelectedItem.Text.ToString() + @"\" + e.FileName; AjaxFileUpload1.SaveAs(filepaths); MessageBox.Show(filepaths); } catch (Exception error) { Label1.Text=(error.Message); } }
Here Is the HTML I have tried putting the 2 different controls in seperate update panels and that hasnt worked either
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<div align="center">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<asp:DropDownList ID="foldList" runat="server"
onselectedindexchanged="foldList_SelectedIndexChanged" AutoPostBack="True">
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<asp:UpdatePanel ID="UpdatePanel2" runat="server" >
<ContentTemplate>
<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server"
onuploadcomplete="AjaxFileUpload1_UploadComplete"
onuploadstart="AjaxFileUpload1_UploadStart" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>