博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重写Repeater,使其支持空模版(列表为空时显示)
阅读量:4954 次
发布时间:2019-06-12

本文共 1077 字,大约阅读时间需要 3 分钟。

在WebForm项目中,列表显示我比较喜欢用Repeater,生成的代码比较干净。不过有一个问题就是当列表为空的时候,为了有较好的用户体验,我们喜欢在界面给出一行提示“查询结果为空”。这时候,.NET自带的Repeater就不能满足需求了,以前通常都是查询出来以后判断一下列表项,一般是datatable或list,如果条数为0,就给出提示,每个列表进行判断,重复代码太多。所以,这里我们想到重写一下Repeater,使其支持一个"空模板",直接代码:

namespace szfsControl
{
    
public 
class Repeater : System.Web.UI.WebControls.Repeater
    {
        
private ITemplate emptyDataTemplate;
        [PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(
typeof(TemplateControl))]
        
public ITemplate EmptyDataTemplate
        {
            
get { 
return emptyDataTemplate; }
            
set { emptyDataTemplate = value; }
        }
        
protected 
override 
void OnDataBinding(EventArgs e)
        {
            
base.OnDataBinding(e);
            
if (emptyDataTemplate != 
null)
            {
                
if (
this.Items.Count == 
0)
                {
                    EmptyDataTemplate.InstantiateIn(
this);
                }
            }
        }
    }
}

界面上调用,首先添加:

<%@ Register TagPrefix=
"
Szfs
" Namespace=
"
szfsControl
" Assembly=
"
Szfs.Web
" %>
然后调用我们重写过的 Repeater
         <Szfs:Repeater runat=
"
server
" ID=
"
Repeater1
">
            <ItemTemplate>
                数据绑定
            </ItemTemplate>
            <EmptyDataTemplate>
                查询结果为空
            </EmptyDataTemplate>
         </Szfs:Repeater>

转载于:https://www.cnblogs.com/kdalan/archive/2012/06/29/2569583.html

你可能感兴趣的文章
HDU6205 card card card
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6198 number number number
查看>>
HDU6438 Buy and Resell
查看>>
HDU6446 Tree and Permutation
查看>>
HDU6201 transaction transaction transaction
查看>>
HDU6203 ping ping ping
查看>>
前端小笔记
查看>>
《人人都是产品经理》书籍目录
查看>>
Netsharp系列文章目录结构
查看>>
如何在git bash中运行mysql
查看>>
OO第三阶段总结
查看>>
构建之法阅读笔记02
查看>>
初学差分约束
查看>>
HEVC编码学习(一)HM配置
查看>>
通过Spark SQL关联查询两个HDFS上的文件操作
查看>>
DataTable和 DataRow的 区别与联系
查看>>
检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
查看>>
mysql数据库中数据类型
查看>>
python-实现生产者消费者模型
查看>>