C# 为下拉列表项指定不同的值和文本
我试图在pageload上用来自batabase的数据填充一个下拉列表 填充时,我希望下拉项的显示文本不同于 例如:下拉列表将db中的标题列显示为UI上的文本,但其“值”应为db中的ID列 我如何做到这一点 目前我的代码是这样的:drpReleaseTitle是下拉列表的IDC# 为下拉列表项指定不同的值和文本,c#,asp.net,database,drop-down-menu,code-behind,C#,Asp.net,Database,Drop Down Menu,Code Behind,我试图在pageload上用来自batabase的数据填充一个下拉列表 填充时,我希望下拉项的显示文本不同于 例如:下拉列表将db中的标题列显示为UI上的文本,但其“值”应为db中的ID列 我如何做到这一点 目前我的代码是这样的:drpReleaseTitle是下拉列表的ID protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { SqlConnection con1 =
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
con1.Open();
SqlCommand releaseTitlecmd = new SqlCommand("select Title from LWMDemo_ReleaseInfo order by ReleaseID", con1);
SqlDataReader releaseTitledr = releaseTitlecmd.ExecuteReader();
while (releaseTitledr.Read())
{
drpReleaseTitle.Items.Add(releaseTitledr.GetValue(0).ToString());
}
con1.Close();
}
}
试试这个
drpReleaseTitle.Items.Add(new ListItem("yourtext", "yourvalue"));
最好使用Dataset而不是Data Reader,因为它使用断开连接的体系结构,所以可以在关闭连接后使用
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
con1.Open();
SqlCommand releaseTitlecmd = new SqlCommand("select Title from LWMDemo_ReleaseInfo order by ReleaseID", con1);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = Cmd;
sda.Fill(ds);
if(ds!=null && ds.table.count>0){
if(ds.table[0]!=null && ds.table[0].rows.count>0){
drpReleaseTitle.DataSource=ds.table[0].Title; //Title Column
drpReleaseTitle.DataSourceID=ds.table[0].ID; //ID Column
}
}
con1.Close();
}
}
若您将尝试向下拉列表中的项目添加字符串,它将创建一个项目,该项目将文本和值作为您的字符串。您需要添加新的ListItem。ListItem包含以文本和值作为参数的构造函数。关于这门课的更多信息,你可以阅读