2014-01-14 66 views
-1

有2列,一列有名稱,另一列有電子郵件地址。我希望能夠在下拉列表中顯示名稱列中的名稱,但在asp頁面上提交表單時,請在下一列中使用該電子郵件。使下拉列表引用2 sql列

public void FillAssignedToDropdownOnsite() 
{ 
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["onsite_db"].ConnectionString); 
    string query = "SELECT Name, EmailAddress FROM OnsiteData "; 
    SqlCommand cmd = new SqlCommand(query, con); 
    SqlDataAdapter adpt = new SqlDataAdapter(cmd); 
    DataTable dt = new DataTable(); 
    cmd.Connection.Open(); 
    adpt.Fill(dt); 
    cmd.Connection.Close(); 

    lstAssignedTo.DataSource = dt; 
    lstAssignedTo.DataTextField = "Name"; 
    lstAssignedTo.DataBind(); 
    lstAssignedTo.Items.Insert(0, "Select Onsite Tech"); 
} 

SQL表是OnsiteData 列名和EMAILADDRESS

形式有發送電子郵件下拉。

+1

這裏有些不太正確。 ASP經典和C#? – Steve

+0

我不明白。您是否想要提交所選名稱的電子郵件? – Plue

回答

0

不知道這是你想要什麼:

lstAssignedTo.DataSource = dt; 
lstAssignedTo.DataTextField = "Name"; 
lstAssignedTo.DataValueField = "EmailAddress" 
lstAssignedTo.DataBind(); 
lstAssignedTo.Items.Insert(0, "Select Onsite Tech"); 

像這樣的顯示的名稱,你可以得到的C或與其對應的電子郵件地址

var value = lstAssignedTo.SelectedValue; 
+0

這很好。感謝您的幫助......我錯過了.Datavaluefield和.selectedvalue – user1864580

1

看起來你的標籤是錯位的。假設這是ASP.NET不是ASP-經典和lstAssignedTo是DropDownList我建議使用DataValueField設置爲EmailAddress的

lstAssignedTo.DataSource = dt; 
lstAssignedTo.DataTextField = "Name"; 
lstAssignedTo.DataValueField = "EMailAddress"; 
lstAssignedTo.DataBind(); 

需要,你可以爲所選用戶讀取Value屬性

提取電子郵件地址時,
if(lstAssignedTo.SelectedValue != null) 
{ 
    string email = lstAssignedTo.SelectedValue.ToString(); 
    ...... 
}