2016-08-13 59 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();