有两列,一列有名字,另一列有电子邮件地址。我希望能够在下拉列表中显示名称列中的名称,但在我的asp页面上提交表单时,请在下一列中使用电子邮件。
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 列是名称和电子邮件地址
表格有一个发送电子邮件的下拉列表。
答案 0 :(得分:1)
您的标签似乎放错了地方。假设这是ASP.NET而不是ASP-Classic,而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();
......
}
答案 1 :(得分:0)
不确定这是你想要的:
lstAssignedTo.DataSource = dt;
lstAssignedTo.DataTextField = "Name";
lstAssignedTo.DataValueField = "EmailAddress"
lstAssignedTo.DataBind();
lstAssignedTo.Items.Insert(0, "Select Onsite Tech");
像这样显示名称,您可以使用
获取相应的电子邮件var value = lstAssignedTo.SelectedValue;