簡體   English   中英

將文本傳遞到Dropdownlist(使用Enum作為其數據源列表)時,ASP.net C#錯誤

[英]ASP.net C# Error when passing text to Dropdownlist, which uses an Enum as its datasource list


(Asp.net/C# VS2008)
我有一個由數據庫填充的datagrid,當按Edit時,將打開一個表單,並從該datagrid行填充字段/控件。
我的問題在於嘗試填充一個下拉列表框,該框具有來自ENum列表的數據源。
我只是無法從datagrid單元中獲取要顯示在ddL中的文本,它也應該等於枚舉項之一並自動選擇它。
我的密碼
從datagrid單元格中拉出時會顯示“低”
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#的新手,但是通過搜索您的網站,我意識到這意味着看不到或沒有獲得價值,並且確實會有所幫助,或者朝着正確的方向歡呼。

我認為問題在於下拉列表不包含您要傳遞的項目。 您可以在更改所選值之前進行檢查。 其他機會是,您從e.Item.Cells[25].Text獲得的值可能包含空格,因此您可以在將其設置為下拉菜單之前進行修剪。

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

                ddl_reg.Text = e.Item.Cells[25].Text;
            }
            else
            {
                //Not found
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM