2016-08-13 54 views
0

有一个网页,将招收学生,他们必须填写他们的个人信息,然后它被保存,但是当他们不得不修改它出于某种原因,我设置两个下拉负载所有的州和县,但问题是我不知道如何自动选择相同的状态,而不是每个学生保存在数据库中的状态,有人能帮我做到这一点吗?下面是我工作的代码:如何自动选择下拉列表asp.net

SqlDataReader dr = cmd.ExecuteReader(); 
DDOWNState.DataTextField = dr["State"].ToString(); 
DDOWNCounty.DataTextField = dr["County"].ToString(); 
+0

有您使用Item.Selected = TRUE;? 如果不是 我正在写一个解决方案,它将工作Inshallah –

回答

0

刚刚尝试这一点

DDOWNState.DataTextField = dr["State"].ToString(); 
DDOWNState.DataBind(); 

DDOWNCounty.DataTextField = dr["County"].ToString(); 
DDOWNCounty.DataBind(); 
+0

它没有工作,我认为有这样一种方法,为每个州设置一个id,但我不知道该怎么做。我有一个存储过程返回状态和id_state,但不知道如何将它们与下拉列表关联,当每个学生的信息加载。 – ACastle

+0

您可以使用DDOWNState.DataValueField =“Id”; –

+0

@ACastle DDOWNState.DataValueField =“Id”;和DDOWNCounty.DataValueField =“ID”在这里ID是你已经分配给这些下拉列表 –

0

使用下面的代码。它会帮助你。 无论何时您将dataSources(DataTable,DataSet等)绑定到Dropdown或任何其他服务器控件时,都应该使用如下的Datasource和Databind属性。

SqlDataReader dr = cmd.ExecuteReader(); 
DDOWNState.DataSource=dr; 
DDOWNState.DataTextField = dr["State"].ToString(); 
DDOWNState.DataBind(); 

DDOWNCounty.DataSource=dr; 
DDOWNCounty.DataTextField = dr["County"].ToString(); 
DDOWNCounty.DataSource(); 
0

我想,你已经绑定了DropDownList它的项目。现在,你需要在绑定代码后做这样的事情。

DDOWNState.ClearSelection(); //You need to clear first. 
DDOWNState.Items.FindByText(dr["State"].ToString()).Selected = true; 

ClearSelection()函数需要因为dropdownlist允许一次要选择的仅一个项目被在dropdownlist选择的任何其它项之前运行。请注意,它不会从dropdownlist中删除项目,但只会清除选择,以便您可以选择任何其他ListItem

如果使用FindByValue()函数以相同的方式保存数据库中的值,则可以这样做。这一定会对你有所帮助。

+0

这种方式工作,但后来当我chagedthe状态我得到一个错误,说:不能在DropDownList中选择多个项目 – ACastle

+0

第二行会帮助你。您需要先清除选择。 – vivek

0

你只需要检查醚学生的状态是比赛与你的数据库的国家,如代码所示

// Let Say We have Student's Current state is USA 
string curruntState = "USA"; 

SqlDataReader reader = cmd.ExecuteReader(); 
while (reader.Read()) 
{ 
    if (curruntState.ToUpper() == reader["State"].ToString().ToUpper()) 
    { 
     ListItem item = new ListItem(reader["State"].ToString(), reader["StateID"].ToString()); 
     item.Selected = true; 
     ddStates.Items.Add(item); 
    } 
    else 
    { 

     ListItem item = new ListItem(reader["State"].ToString(), reader["StateID"].ToString()); 
     item.Selected = false; 
     ddStates.Items.Add(item); 
    } 
} 
ddStates.DataBind(); 
reader.Close();