2009-02-02 65 views
0

我想建议如何将记录注入到我的DropdownList中以提供“全部”选项。这里是我的代码,来自Northwind数据库的数据。在SqlDataSource中注入记录

<asp:DropDownList ID="ddlRegion" runat="server" DataSourceID="SqlDataSource1" 
    DataTextField="RegionDescription" DataValueField="RegionID" 
     AutoPostBack="True" onselectedindexchanged="ddlRegion_SelectedIndexChanged" /> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" 
    SelectCommand="SELECT [RegionID], [RegionDescription] FROM [Region]" 
     ondatabinding="SqlDataSource1_Databinding"> 
</asp:SqlDataSource> 

我试过以下,但它不添加项目;

if(!Page.IsPostBack()) 
ddlRegion.Items.Insert(0, new ListItem("All", "-1")); 

我想也许使用ondatabinding可能是正确的路要走,但我不知道如何去做。

感谢

回答

2

只需添加的所有项目的ASPX,然后设置AppendDataBoundItems = TRUE,它会保持与绑定项数据静态定义的项目。

+0

谢谢,这个伎俩。不幸的是,同样的技巧不适用于DataList,它没有AppendDataBoundItems属性。 – Picflight 2009-02-02 22:17:05

1

Timbagas提出了一个很好的建议,另一个是使用存储过程并在那里进行附加操作,以便返回的记录集包含'All'选项以及所需的行。