[英]C# Asp.Net changing DataSource for GridView using DropDownList
[英]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.