0

C# を使用して別のドロップダウン リスト コントロールを作成しようとしています。私の計画では、最初の DropDownList に「サイズ」「性別」「モデル」などのカテゴリが表示され、それらのいずれかを選択すると、前に選択したカテゴリの新しいサブカテゴリとともに新しい DropDownList が表示されます。

たとえば、「サイズ」を選択すると、新しい 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 は次のようになります。

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 に答える