C#问题中的下拉列表

时间:2015-01-09 23:11:55

标签: asp.net

C#.net中的

下拉列表没有显示它应该显示的项目! 我有一个下拉列表,假设从文件夹中显示图像名称,但它没有这样做! 启动.aspx文件时没有错误! buuuuuut当我得到输出时,只有空的下拉列表!


这个ManageProducts.aspx代码是:

    

        名称:

    

             

    

        类型:

    

                          “SelectCommand =”SELECT * FROM [ProductTypes] ORDER BY [Name]“>     

    

        价格:

    

             

    

        图像:

    

                      

    

        说明:

    

             

    

             

    

             


这是后面的代码:

using System;
using System.Collections;
using System.IO;


public partial class PagesNew_ManagementPages_ManageProducts : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
if(!IsPostBack)   //this baby makes the data not come every time the pg is refreshed , 
    //postback=refresh page
    GetImages();
    }

    private void GetImages()
    {
        try
        {
            //get all filepaths
            string[] images = Directory.GetFiles(Server.MapPath("~/Img/Products/"));

            //get all filenames and put them in a stupid array....yeah DSA days
            ArrayList imageList = new ArrayList();
            foreach (string image in images)
            {
                string imageName = image.Substring(image.LastIndexOf(@"\", StringComparison.Ordinal) + 1);
                imageList.Add(imageName);
               // see the Array in dd viwe datasource and refresh
                ddImage.AppendDataBoundItems = true;
                ddImage.DataBind();


            }


        }
        catch (Exception e)
        {
            lblResult.Text = e.ToString(); 
        }



    }

    protected void ddImage_SelectedIndexChanged(object sender, EventArgs e)
    {

    }


 } 

1 个答案:

答案 0 :(得分:1)

您希望将数据列表绑定在for循环之外。

ArrayList imageList = new ArrayList();
foreach (string image in images)
{
    string imageName = image.Substring(image.LastIndexOf(@"\", StringComparison.Ordinal) + 1);
    imageList.Add(imageName);
}
ddImage.DataSource = imageList;
ddImage.AppendDataBoundItems = true;
ddImage.DataBind();