AjaxFileUpload:获取RadioButtonList的选定值

时间:2013-03-25 15:14:25

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

使用autoPostBack = true 创建的两个 radiobuttonlist(semesterList和sem1course)。 enter image description here

当我点击其中一个semesterList的项目时,相应的sem1course项目变为可见。

现在

    protected void UploadComplete(Object sender,   AjaxControlToolkit.AjaxFileUploadEventArgs      e)
   {

   string sem = semesterList.SelectedValue;
   string course = sem1course.SelectedValue;
   string path = Server.MapPath("~/MCA/" + sem+ "/" +course +"/")+e.FileName;
   AjaxFileUpload1.SaveAs(path);
   } 

字符串sem和课程没有获得所选的值,这就是为什么所有文件都被上传到〜/ MCA /文件夹而不是进入相应的文件夹..

上传的文件应该转到“MCA \ Sem1 \ MCA101 \” [我设计了目录结构,但文件已上传到MCA文件夹] ..

1 个答案:

答案 0 :(得分:0)

调用AjaxFileUpload OnUploadComplete事件时,问题为Request.Form["__VIEWSTATE"] = null

修复此问题(C#代码):

在页面加载时在会话中设置RadioButtonList选定值。

protected void Page_Load(object sender, EventArgs e)
{
 if (Request.Form["__VIEWSTATE"] != null)
    Session["Path"] = "//" + semesterList.SelectedValue + "//" + sem1course.SelectedValue + "//";
}

使用会话值创建文件路径:

protected void upload(Object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
        string path = string.Empty;
        if (Session["Path"] != null)
            path = Server.MapPath("~//MCA" + (string)Session["Path"]) + e.FileName;
}