0

我试图通过 C# 制作另一个下拉列表控件。我的计划是,第一个 DropDownList 显示诸如“大小”“性别”“模型”之类的类别,当您选择其中一个时,将出现一个新的 DropDownList,其中包含先前选择的类别的新子类别。

例如,如果我选择“Size”,则会出现一个新的 DropDownList,并可以从多种尺寸中进行选择。

我得到一个错误,同时测试听起来像这样:确保您的方法参数格式正确。

这是我的代码的样子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ContactTableAdapters;

public partial class Test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void ddlTwo_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlTwo.Items.Clear();
        if (ddlThree.SelectedValue != "0")
        {
            Contact.CategoriesDataTable table;
            ddlTwo.AppendDataBoundItems = true;
            ddlTwo.Items.Add(new ListItem("Choose", "0"));
            CategoriesTableAdapter subM = new CategoriesTableAdapter();
            int CategoryID = Convert.ToInt32(ddlThree.SelectedValue); //This is where I get the error
            table = subM.GetCategoryByCategoryID(CategoryID);
            foreach (Contact.CategoriesRow row in table)
            {


                string text = row.Category;
                string value = row.CategoryID.ToString();
                ddlTwo.Items.Add(new ListItem(text, value));

            }
        }
    }
}

谁能告诉我,我可能做错了什么?

4

2 回答 2

1

看起来您正在返回一个无法转换为整数的值。

您可以做的是创建一个可以引用您的措辞值的 Enum :

int CategoryID = Enum.GetValues(typeof(Category), (ddlThree.SelectedValue));

你的枚举看起来像这样:

enum Category
{
Size= 1,
Gender = 2,
Value = 3
}
于 2012-09-13T21:46:26.540 回答
0

如果您实际上是在响应 ddlTwo 上的事件,请使用以下命令:

protected void ddlTwo_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlThree.Items.Clear();
        if (ddlTwo.SelectedValue != "0")
        {
            Contact.CategoriesDataTable table;
            ddlThree.AppendDataBoundItems = true;
            ddlThree.Items.Add(new ListItem("Choose", "0"));
            CategoriesTableAdapter subM = new CategoriesTableAdapter();
            int CategoryID = Convert.ToInt32(ddlTwo.SelectedValue); //This is where I get the error
            table = subM.GetCategoryByCategoryID(CategoryID);
            foreach (Contact.CategoriesRow row in table)
            {


                string text = row.Category;
                string value = row.CategoryID.ToString();
                ddlThree.Items.Add(new ListItem(text, value));

            }
        }
    }
于 2012-09-13T21:49:54.890 回答