DropDownList的一个不常见用法

来源:互联网 发布:通联数据同类公司 编辑:程序博客网 时间:2024/04/29 19:05

常见的,我们可以用DropDownList的作为值作为一个筛选条件,以选择数据。如选择一个ID,则从数据库里读取该条记录并Render。

考虑另一种情况,我们可能需要让DropDownList的Value为空,Text为所有。当选择这个Item时从数据库中将所有的记录选择出来。

那么我们该怎么做呢?

 首先,需要在将DropDownList作为数据源的SqlDataSource以类似于下面的方式写

        <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:Pubs %>"
            ID
="SqlDataSource1" runat="server" SelectCommand="SELECT au_id, au_lname, au_fname, state FROM authors WHERE au_id = IsNull(@au_id, au_id)" CancelSelectOnNullParameter="False">
            
<SelectParameters>
                
<asp:ControlParameter ControlID="DropDownList1" Name="state" PropertyName="SelectedValue" Type="String"  ConvertEmptyStringToNull="true"/>
            
</SelectParameters>
        
</asp:SqlDataSource> 

这里有三个重要的地方:

一:SelectCommand中需要对空值进行处理,即IsNull(au_id,au_id)。

二:如果传递给 SelectCommand 的任何关联参数为空,则 SqlDataSource 默认不执行 Select 操作。若要允许 Select 操作即使在传递了空参数时也要执行,可以将 CancelSelectOnNullParameter 属性设置为 false。

三:与DropDownList相关的ControlParameter 需要设置一个ConvertEmptyStringToNull属性。更多参考在“DataAccess学习”这篇文章的关于处理空值的部分

然后:在DropDownList中添加一个节点

        <asp:DropDownList ID="DropDownList1"  AppendDataBoundItems="true" runat="server" AutoPostBack="True"
         DataSourceID
="SqlDataSource3" DataTextField="au_id">
       
<asp:ListItem Text="所有" Value="" Selected="True">
       
</asp:ListItem>
        
</asp:DropDownList>

这里有一个重要的地方,就是AppendDataBoundItems属性要设置为True,否则里面添加的“所有”节点不会添加进去,而是被SqlDataSource3选择出来的数据代替掉。只有设置为True,它们才能共存。该属性允许将从 DropDownList 数据源获得的值追加到 Items 集合中静态添加的“所有”项。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝屁股腌红了怎么办 宝宝肛门红痒怎么办啊 宝宝屁屁溃烂了怎么办 脸过敏起红疙瘩怎么办 一岁宝宝屁股红怎么办 屁眼肉凸出来了怎么办 陶笛声音变闷了怎么办 吃三七粉上火了怎么办 红枣核吞下去了怎么办 话梅核吞下去了怎么办 芒果和海鲜吃了怎么办 小孩咳嗽喉咙有痰怎么办 4岁宝宝喉咙有痰怎么办 20天新生儿有痰怎么办 孩子嗓子老是有痰怎么办 买的哈密瓜不甜怎么办 吉他琴颈变形了怎么办 hcg值长得慢怎么办 蚊子老在耳边叫怎么办 刚买来的鲜海参怎么办 天冷手指关节疼怎么办 未满一年驾龄上高速违章怎么办 榴莲太生剥开了怎么办 榴莲开了没熟怎么办 榴莲打开了没熟怎么办 榴莲开口了没熟怎么办 榴莲没熟打开了怎么办 不熟的榴莲没熟怎么办 打开的榴莲没熟怎么办 开了的榴莲没熟怎么办 榴莲剥出来没熟怎么办 榴莲剥开了没熟怎么办 榴莲买回来没熟怎么办 整个的榴莲熟了怎么办 买的榴莲有点生怎么办 剥开的榴莲肉硬怎么办 买了钻戒后悔了怎么办 钻戒小钻石掉了怎么办 2岁宝宝爱看电视怎么办 笛子中音3有点高怎么办 长笛嘴型,杂音多怎么办