我有一个从数据库中填充的下拉菜单:
<asp:DropDownList ID="searchApplicationDropDown" runat="server"
DataSourceID="SqlDataSource8" DataTextField="AppName"
DataValueField="PK_Application"></asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource8" runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="SELECT [PK_Application], [AppName] FROM [Application]">
</asp:SqlDataSource>
如何在数据库外部手动添加行?
答案 0 :(得分:2)
您需要处理下拉列表的DataBound
事件(在数据库中的所有值都已放入下拉列表后发生),如下所示:
标记:
<asp:DropDownList ID="searchApplicationDropDown" runat="server"
DataSourceID="SqlDataSource8" DataTextField="AppName"
DataValueField="PK_Application" OnDataBound="searchApplicationDropDown_DataBound"></asp:DropDownList>
代码隐藏:
protected void searchApplicationDropDown_DataBound(object sender, EventArgs e)
{
DropDownList list = sender as DropDownList;
if (list != null)
{
list.Items.Insert(0, "--Select One--");
}
}
答案 1 :(得分:2)
使用AppendDataBoundItems
的{{1}}属性,如下所示:
DropDownList
答案 2 :(得分:1)
因为您只是想在顶部获取默认行。一种方法是:
<asp:SqlDataSource ID="SqlDataSource8" runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="SELECT -1 AS [PK_Application], 'Please select an application...' AS [AppName] UNION ALL SELECT [PK_Application], [AppName] FROM [Application]">
</asp:SqlDataSource>
我不确定[PK_Application]
是int
,但您可以根据需要修改SELECT
以对其进行排序。您甚至可能需要将Please select an application...
修改为(Please select an application...)
以使其正确排序。
答案 3 :(得分:1)
使用PreRender
protected void Page_PreRender(object sender, EventArgs e)
{
searchApplicationDropDown.Items.Insert(0 , new ListItem("Select...", ""));
}
答案 4 :(得分:0)
试试这个:
searchApplicationDropDown.Insert(0, new ListItem() { Text = "", Value = "value" });