两张表,一张通知表,另一张日志表,该通知被某个登录用户查看就往日志表中添加一条该用户阅读过的数据,很多人查看的,我查询出所有数据后,还需要绑定后根据条件来显示哪些需要置顶加红,(从日志表中判断该登陆者有没有查看过)我不知道该怎么做,是用dgv好还是repeat好呢,各位有相关案例吗?感激不尽
日志表里面应该有这个人的标识 比如ID什么的 根据用户ID从日志表中取出数据 和通知表中取出的数据比对
//数据绑定
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
只要你查询出了正确的数据,怎么显示还不是你说了算吗?
//数据绑定
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
@陆仁甲:
--你应该用类似的语句来实现。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
根据日志查出最近查看过的通知,然后每次查看通知返回的时候动态刷新一下查询结果就ok了吧
//数据绑定
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
@陆仁甲:
一、在你查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();
}
这里完了之后你去查日志,然后筛选出没有读过的记录,置顶显示。