如何在ASP中使用数据库结果填充下拉列表标题之前添加下拉列表标题
本文关键字:标题 下拉列表 填充 添加 结果 数据库 ASP | 更新日期: 2023-09-27 18:37:14
我知道 HTML 中的选择菜单不存在 title 属性,所以通常我只有一个顶部带有空值的选项,上面写着"选择项目",然后我默认选择它。 我的问题是我的ASP项目中的选择菜单绑定到数据字段。 我从 C# 文件添加的额外选项没有出现。 我认为这是因为数据字段覆盖了这个额外的选项。 我还尝试在我的aspx文件的下拉列表中添加一个列表项。 这无济于事。 如何添加此额外选项?
这是我的 C#
protected void Page_Load(object sender, EventArgs e)
{
string connstring;
connstring = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString;
SqlConnection conn = new SqlConnection(connstring);
SqlCommand cmd = new SqlCommand("dbo.GetCourses", conn);
conn.Open();
DDCourses.Items.Add(new ListItem("Select Course", "0"));
DDCourses.DataSource = cmd.ExecuteReader();
DDCourses.DataTextField = "courseName";
DDCourses.DataValueField = "courseId";
DDCourses.DataBind();
conn.Close();
conn.Dispose();
}
下面是 ASP:
<asp:DropDownList ID="DDCourses" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DDCourses_SelectedIndexChanged" SelectCommandType="StoredProcedure"
SelectCommand="GetCourses" DataTextField="courseName" DataValueField="courseId">
<asp:ListItem selected="True" Text="Select Course"></asp:ListItem>
</asp:DropDownList>
以编程方式插入它,但在数据绑定之后执行此操作。
DDCourses.Items.Insert(0, New ListItem("Select Course", "0"));
DDCourses.SelectedIndex = 0;
设置属性:
AppendDataBoundItems="true"
还要确保在你的Page_Load()中有:
if(!Page.IsPostBack)
{
// databind code.
}
这里的问题是, 您在分配数据源之前添加附加项。这样,在分配数据源时,下拉列表将加载新数据源。因此,您要做的是在分配数据源后将项插入0th
索引。代码段将如下所示:
DDCourses.DataSource = cmd.ExecuteReader();
DDCourses.DataTextField = "courseName";
DDCourses.DataValueField = "courseId";
DDCourses.DataBind();
DDCourses.Items.Insert(0, New ListItem("Select Course", "0"));
如果您希望默认情况下选择插入的项目,则需要在插入语句后编写单行DDCourses.SelectedIndex = 0;