0


(Asp.net/C# VS2008)
データベースによって入力されたデータグリッドがあり、[編集] を押すと、フォームが開き、そのデータグリッド行からフィールド/コントロールが入力されます。
私の問題は、ENum リストからのデータソースを持つドロップダウン リスト ボックスにデータを入力しようとするときに発生します。
データグリッドセルからテキストを取得して ddL に表示することはできません。また、列挙項目の 1 つと等しくなり、それを自動選択する必要があります。
コード
をデータグリッド セルからプルすると、「Low」と表示されます<br> ddl_reg.Text = e.Item.Cells[25].Text;

    public void Populate_regstatus_dropdownlist()
{
    //if (!IsPostBack)
    //{
    //    ddl_reg.DataSource = Enum.GetNames(typeof(regstatus));
    //    ddl_reg.DataBind();
    //}
    //if (!IsPostBack)
    //{
    //    foreach (int value in Enum.GetValues(typeof(regstatus)))
    //    {
    //        ddl_reg.Items.Add(new ListItem(Enum.GetName(typeof(regstatus), value), value.ToString()));
    //    }
    //}
    ddl_reg.DataSource = Enum.GetNames(typeof(regstatus ));
    //ddl_reg.DataValueField = regstatus;
    //ddl_reg.DataTextField = "Low";
    //ddl_reg .SelectedItem = Enum.GetName(typeof (regstatus ));
    ddl_reg.DataBind();
    //ddl_reg.SelectedIndex = ddl_reg.Items.IndexOf(ddl_reg.Items.FindByText("Low"));


}
public enum regstatus
{
    NotSelected,
    Low,
    Medium,
    High
}

受信したエラーは次のとおりです。

ddl_reg' には、アイテムのリストに存在しないため無効な SelectedValue があります。パラメータ名: 値

私はC#を初めて使用しますが、サイトを検索すると、値が表示されていないか、プルされていないことを意味していることに気付きました.

4

1 に答える 1

0

問題は、ドロップダウン リストに渡されたアイテムが含まれていないことだと思います。選択した値を変更する前に確認できます。その他の可能性として、取得する値e.Item.Cells[25].Textにスペースが含まれている可能性があるため、ドロップダウンに設定する前にトリミングすることができます。

 if (ddl_reg.Items.FindByText("Low") != null)
            {

                ddl_reg.Text = e.Item.Cells[25].Text;
            }
            else
            {
                //Not found
            }
于 2012-06-27T12:36:52.733 に答える