http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 8391|回复: 4
打印 上一主题 下一主题

[Asp.Net] asp.net中Repeater,Gridview,datalist中没有数据时怎么提示解决方案

[复制链接]
跳转到指定楼层
楼主
发表于 2013-9-5 09:55:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    asp.net中Repeater,Gridview,datalist中没有数据时怎么提示解决方案
   
   这个问题我相信很多人都有见过,也碰到过这样的问题。
在Repeater,Gridview,datalist中没有数据时要给用户一个友好的提示,而不是直接显示空白。
我今天也碰到了这样的问题。
我来说一下我的解决方案吧。

上网查了查,大多数人在说重写一个控件,然后再使用加个EmptyDataTemplate模板,其实这种方法也是可以的,只是我个人不推荐,因为这种技术显得有点高级一些,不太适合推广。
最重要是要修改系统控件,所以我不推荐。

不过实现方法还是给大家写一下吧。

[code=csharp]/// <summary>
    /// 自定义Repeater 支持EmptyDataTemplate
    /// 作者:cantops
    /// </summary>
    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);
                }
            }
        }

    }[/code]
然后在使用是就可以添加EmptyDataTemplate模板了,直接在里面写你的提示信息就行,没有数据时会直接显示
代码如下
[code=html]<asp:Repeater ID="Repeater1" runat="server">
    <HeaderTemplate>
      //头部
    </HeaderTemplate>
    <ItemTemplate>
       //列表项
    </ItemTemplate>
    <EmptyDataTemplate>
        数据为空,给大家个提示,查不到数据哦</EmptyDataTemplate>
</asp:Repeater>[/code]
而我建议大家在这个控件下面直接验证进行提示如下
[code=html]<%
    string sm = "";
    if (Repeater1.Items.Count == 0)
    {
        sm = "<br/><br/><span style='color:red'>没有查询到相关记录!</span>";
    } %>
<%=sm %>[/code]

对就是这种方法,推荐




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
沙发
发表于 2013-9-5 09:58:58 | 只看该作者
其实不用这么麻烦, Gridview有一个属性:EmptyDataText="没有相关数据"   当绑定Gridview为空的时候自动会提示
板凳
发表于 2013-9-5 09:59:15 | 只看该作者
甚至DIV也可以使用
地板
发表于 2013-9-5 10:00:46 | 只看该作者
第一种方法走了弯路但也实现了:脱了裤子放屁。
第二种方法直接实现了:直接放屁更爽。

经验收藏了,顶飞哥
5
 楼主| 发表于 2013-9-5 10:01:43 | 只看该作者
song 发表于 2013-9-5 09:58
其实不用这么麻烦, Gridview有一个属性:EmptyDataText="没有相关数据"   当绑定Gridview为空的时候自动会 ...

呵呵,是的,不过Repeater并没有,
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-16 07:12

© 2014-2021

快速回复 返回顶部 返回列表