比如页面有一篇文章,我看完以后可以点击看下一篇,也可以点击上一篇。
我通过sql语句“select top 1 * from xxxxx”,和viewstate实现了,
点击多了还出现那个“禁止回发或回调”错误
刷新一下就没事了,不定时的出现这种错误,虽无大碍,提示加入那句 “xxx=true”,但是加后还是那样
这是怎么回事啊?还有我觉得这种方法很烂,我总觉得有更好的方法的,求那位高人指教,希望详细点的
我通过sql语句“select top 1 * from xxxxx”,和viewstate实现了,
点击多了还出现那个“禁止回发或回调”错误
刷新一下就没事了,不定时的出现这种错误,虽无大碍,提示加入那句 “xxx=true”,但是加后还是那样
这是怎么回事啊?还有我觉得这种方法很烂,我总觉得有更好的方法的,求那位高人指教,希望详细点的
解决方案 »
- IsPostBack的疑惑
- 请问如何用UpdatePanel+gridview实现无刷新分页?
- 急!!!!!DataGrid更新数据
- 2个ifram内页面链接的控制
- 给页面中的控件设置了缓存(只有一个没有加),一段时间间隔出现无数据(空白)现象,求助~!
- ?30分求助一个小问题
- 高分请教!
- 真是纳闷了,请高手进来帮忙解决一下
- ****高分求助!! 我在datagrid里面加了一列LinkButton,我想点击它后删掉所在行(连数据库里的都删掉),如何确定所在行呢??谢谢!
- [真的要散分才有人来吗]大家近来发表,讨论,学习查MSDN的技巧。(凡事自己解决,不要动不动就上来问)
- 关于论坛显示数据的问题,请指点一下!
- 是否有人.net版cms内容管理系统啊
就像CSDN这样的67c05ec9-365a-43ff-ae44-375fef618b75
怎么办尼?
是数值的话是很好做的
public void BindNextUp()
{
showid = Convert.ToString(SQLUtil.CutIntFromStr(Request["showid"]));
if (showid != null && showid != "")
{
sqls.Sys_Paras.Add(new SqlParameter("@logid", SQLUtil.FilerSql(showid)));
DataTable dtnextup = new DataTable();
string strNextUp = "select * from (select top 1 logid,title from dbo.space_MyReleased where logid>case when (select count(*) ";
strNextUp += " from dbo.space_MyReleased where state=1 and delstate=0 and logid > @logid) > 0 then @logid else @logid - 1 end order by logid)as a union ";
strNextUp += " select * from (select top 1 logid,title from dbo.space_MyReleased where state=1 and delstate=0 and logid< case when ";
strNextUp += " (select count(*) from dbo.space_MyReleased where state=1 and delstate=0 and logid < @logid) > 0 then @logid else @logid + 1 end order by logid desc) as b ";
sqls.Fill_DT(strNextUp, dtnextup);
if (dtnextup.Rows.Count > 0)
{
this.up.Text = "<a class='MsHref1' href=MyLogLeft.aspx?showid=" + dtnextup.Rows[0]["logid"].ToString() + ">" + dtnextup.Rows[0]["title"].ToString() + "</a>";
for (int i = 0; i < dtnextup.Rows.Count; i++)
{
int upid = Convert.ToInt32(dtnextup.Rows[i]["logid"].ToString());
//判断传递的ID大小来显示上一篇下一篇
if (upid == Convert.ToInt32(SQLUtil.FilerSql(showid)))//查询ID相等的
{
this.netx.Text = "<a class='MsHref1' href=MyLogLeft.aspx?showid=" + dtnextup.Rows[i]["logid"].ToString() + ">" + dtnextup.Rows[i]["title"].ToString() + "</a>";
}
else if (upid < Convert.ToInt32(showid))//查出ID小于ShowID的
{
this.up.Text = "<a class='MsHref1' href=MyLogLeft.aspx?showid=" + dtnextup.Rows[i]["logid"].ToString() + ">" + dtnextup.Rows[i]["title"].ToString() + "</a>";
}
else
{
this.netx.Text = "<a class='MsHref1' href=MyLogLeft.aspx?showid=" + dtnextup.Rows[i]["logid"].ToString() + ">" + dtnextup.Rows[i]["title"].ToString() + "</a>";
}
}
} sqls.Sys_Paras.Clear();
}
}
#endregion
<!--上一篇下一篇-->
<div class="MLDiv3" >
<div style="float: left" > « 上一篇:【<asp:Label ID="up" runat="server"/>】</div>
<div align="right" >下一篇:【<asp:Label ID="netx" runat="server" ></asp:Label> 】 </div>
</div>
判断了最后一条。和最前面一条。时候点击上一条还是最前面。或最后一条。
(
@inRowId int
)
as
begindeclare @newArticleTable table
(
RowId int,
title nvarchar(6000),
date datetime,
xxxx xxxxx
)declare @maxRowId intinsert into @newArticleTable
select row_number() over (order by ANYCOLUMN ) as RowId,
title,
date,
xxxx
from ArticleTableselect @maxRowId = max(RowId) from @newArticleTableselect RowId, title, date, xxxx, @maxRowId from @newArticleTable
where RowId = @inRowIdend
go存储过程返回给你的内容包括当前的ROWID和最大的maxRowId, 在程序中对比它们,控制RowID, 最小值为1,最大值为maxRowId,
点‘前一篇’ RowID - 1, '下一篇' 则加1;也可根据存储过程返回的 ROWID 和 MAXROWID 决定是否继续显示‘前一篇’或‘下一篇’。
select Max(ID) from T where ID<5
select Min(ID) from T where ID>5