你调用的对象是空的

时间:2011-06-07 17:30:58

标签: asp.net upload express

我在使用aspx上传控件&在单个aspx页面上下拉列表。

这是错误......

Object reference not set to an instance of an object.

这是我的on_submit的代码......

protected void ASPxUploadControl1_FileUploadComplete(object sender, DevExpress.Web.ASPxUploadControl.FileUploadCompleteEventArgs e)
    {
        if (e.IsValid)
        {
            string uploadDirectory = Server.MapPath("~/files/");
            //string uploadDirectory = "//DOCSD9F1/TECHDOCS/";

            string uploadFolder = DropDownList1.SelectedItem.Text;

            string fileName = e.UploadedFile.FileName;

            string path = (uploadDirectory + uploadFolder + fileName);

            e.UploadedFile.SaveAs(path);
            e.CallbackData = fileName;
        }
    }`

这是我创建下拉列表的代码...

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DirectoryInfo di = new DirectoryInfo("D:/SMGUpload/SMGUpload/files");

            DropDownList1.DataSource = di.GetDirectories();

            DropDownList1.DataBind();

            foreach (DirectoryInfo i in di.GetDirectories())
            {
                DropDownList1.DataTextField = i.FullName;
                DropDownList1.DataValueField = i.FullName;
            }
        }
    }`

1 个答案:

答案 0 :(得分:0)

您可能想尝试一下:

if(!Page.IsPostBack){
    DirectoryInfo di = new DirectoryInfo("D:/SMGUpload/SMGUpload/files");
    DirectoryInfo[] diArr = di.GetDirectories();
    DropDownList1.DataSource = diArr;
    DropDownList1.DataTextField = "Name";
    DropDownList1.DataValueField = "Name";
    DropDownList1.DataBind();
}

获取所选值,如:

string uploadFolder = DropDownList1.SelectedValue;

仅供参考:确保在上传文件时您正在创建的路径中有正确的斜杠(/)。