首页 新闻 会员 周边

公司通知:未被查看的置顶红色加红显示怎么做?

0
悬赏园豆:20 [已解决问题] 解决于 2014-04-10 15:55

两张表,一张通知表,另一张日志表,该通知被某个登录用户查看就往日志表中添加一条该用户阅读过的数据,很多人查看的,我查询出所有数据后,还需要绑定后根据条件来显示哪些需要置顶加红,(从日志表中判断该登陆者有没有查看过)我不知道该怎么做,是用dgv好还是repeat好呢,各位有相关案例吗?感激不尽

陆仁甲的主页 陆仁甲 | 初学一级 | 园豆:73
提问于:2014-01-16 14:03
< >
分享
最佳答案
0

日志表里面应该有这个人的标识 比如ID什么的 根据用户ID从日志表中取出数据 和通知表中取出的数据比对

收获园豆:10
wolfy | 老鸟四级 |园豆:2636 | 2014-01-16 18:58

//数据绑定
        public void Bind()
        {
            string aa = GetUserID();
            _Notice.ColumnName = "NoticeID,NoticeTitle,NoticeContent,UserID,UserName,Enable,Last_ModifyTime";  //要绑定的数据组
            _Notice.EntityName = "Company_Notice"; //表名
            _Notice.PageIndex = base.GetPageIndex; //当前页
            _Notice.PageSize = base.GetPageSize;  //分页容量
            _Notice.Order = "NoticeTitle asc";
            _Notice.KeyWord = "Enable=1";
           
            DataSet result = Company_NoticeFacade.GetCommany_NoticeList(_Notice);
            if (result.Tables.Count > 0 && result.Tables[0].Rows.Count > 0)
            {
                this.RepNotifiedShow.DataSource = result.Tables[0];
                this.RepNotifiedShow.DataBind();

            }

 

公司模板弄的,我后面不知道该怎么着手了,这里查询出了所有数据,dbo.Company_Notice 公告表 NoticeID, NoticeTitle, NoticeContent, UserID, UserName, Enable, Last_ModifyTime
dbo.Company_Notice_ViewLog 用户查看就添加一条数据 NoticeViewLogID, NoticeID, UserID, UserName, Last_ModifyTime

陆仁甲 | 园豆:73 (初学一级) | 2014-01-20 14:11
其他回答(2)
1

只要你查询出了正确的数据,怎么显示还不是你说了算吗?

幻天芒 | 园豆:37175 (高人七级) | 2014-01-16 14:42

//数据绑定
        public void Bind()
        {
            string aa = GetUserID();
            _Notice.ColumnName = "NoticeID,NoticeTitle,NoticeContent,UserID,UserName,Enable,Last_ModifyTime";  //要绑定的数据组
            _Notice.EntityName = "Company_Notice"; //表名
            _Notice.PageIndex = base.GetPageIndex; //当前页
            _Notice.PageSize = base.GetPageSize;  //分页容量
            _Notice.Order = "NoticeTitle asc";
            _Notice.KeyWord = "Enable=1";
           
            DataSet result = Company_NoticeFacade.GetCommany_NoticeList(_Notice);
            if (result.Tables.Count > 0 && result.Tables[0].Rows.Count > 0)
            {
                this.RepNotifiedShow.DataSource = result.Tables[0];
                this.RepNotifiedShow.DataBind();

            }

 

公司模板弄的,我后面不知道该怎么着手了,这里查询出了所有数据,dbo.Company_Notice 公告表 NoticeID, NoticeTitle, NoticeContent, UserID, UserName, Enable, Last_ModifyTime
dbo.Company_Notice_ViewLog 用户查看就添加一条数据 NoticeViewLogID, NoticeID, UserID, UserName, Last_ModifyTime

支持(0) 反对(0) 陆仁甲 | 园豆:73 (初学一级) | 2014-01-20 14:12

@陆仁甲: 

--你应该用类似的语句来实现。IsRed表示这条新闻是否已经被当前用户阅读过,@UserId参数,是你需要传递的当前用户ID
SELECT t1.*,IsRed=(CASE WHEN t2.Id IS NULL 1 ELSE 0 END) FROM News t1
LEFT JOIN ViewLog t2 ON t1.NewsId=t2.NewsId AND t2.UserId=@UserId
支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-01-20 15:21
0

根据日志查出最近查看过的通知,然后每次查看通知返回的时候动态刷新一下查询结果就ok了吧

收获园豆:10
bitbug | 园豆:470 (菜鸟二级) | 2014-01-20 08:58

//数据绑定
        public void Bind()
        {
            string aa = GetUserID();
            _Notice.ColumnName = "NoticeID,NoticeTitle,NoticeContent,UserID,UserName,Enable,Last_ModifyTime";  //要绑定的数据组
            _Notice.EntityName = "Company_Notice"; //表名
            _Notice.PageIndex = base.GetPageIndex; //当前页
            _Notice.PageSize = base.GetPageSize;  //分页容量
            _Notice.Order = "NoticeTitle asc";
            _Notice.KeyWord = "Enable=1";
           
            DataSet result = Company_NoticeFacade.GetCommany_NoticeList(_Notice);
            if (result.Tables.Count > 0 && result.Tables[0].Rows.Count > 0)
            {
                this.RepNotifiedShow.DataSource = result.Tables[0];
                this.RepNotifiedShow.DataBind();

            }

 

公司模板弄的,我后面不知道该怎么着手了,这里查询出了所有数据,dbo.Company_Notice 公告表 NoticeID, NoticeTitle, NoticeContent, UserID, UserName, Enable, Last_ModifyTime
dbo.Company_Notice_ViewLog 用户查看就添加一条数据 NoticeViewLogID, NoticeID, UserID, UserName, Last_ModifyTime

支持(0) 反对(0) 陆仁甲 | 园豆:73 (初学一级) | 2014-01-20 14:12

@陆仁甲: 

一、在你查DataSet result = Company_NoticeFacade.GetCommany_NoticeList(_Notice);的时候,用后台sql排好序,做好标志,然后前台直接展现

二、

if (result.Tables.Count > 0 && result.Tables[0].Rows.Count > 0)
            {
                this.RepNotifiedShow.DataSource = result.Tables[0];
                this.RepNotifiedShow.DataBind();

            }

这里完了之后你去查日志,然后筛选出没有读过的记录,置顶显示。

支持(0) 反对(0) bitbug | 园豆:470 (菜鸟二级) | 2014-01-20 17:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册