采用devpage 2005控件编写,该控件是服务器控件。功能描述:打开第x篇文章,查看该文章的第y页。该控件语句如下:news-detail.aspx?id={0}&& DevPage={0}。问题是前面文章id号的{0} 和后面文章分页的{0}发生冲突。例如,编号为12号的长文章一共分了4个页面显示,但是在单击文章标题,打开详细页以后,点击该文章分页导航条上的第2页,显示的不是该文章的第2页内容,而是id号为2的文章。由于devpage={0}是控件属性面板默认设置,所以想请教一下高人,devpage控件该如何避免这种现象发生。代码如下:detail.aspx代码
<body>
<form id="newsform" runat="server">
<div class="news-adv">
<div class="logo">
<img class="logo" src="../image/earth/earth-01.gif" />
</div>
<div class="pict">此处显示 class "pict" 的内容</div>
</div>
<div id="modernbricksmenu2">
<ul>
<li style="margin-left: 1px"><a href="#" title="Home">首页</a></li>
<li id="current"><a href="#" title="New">新闻综述</a></li>
<li><a href="">深度观察</a></li>
<li><a href="">人物追踪</a></li>
<li><a href="">媒体传真</a></li>
<li><a href="">我的评论</a></li>
<li><a href="">网络调查</a></li>
</ul>OnClick="ImageButton1_Click" />
</div>
<div id="news-detail">
<div id="content-out">
<div id="position">首页 » 新闻综述 » 详细内容</div>
<div id="title">
<asp:Label ID="title" runat="server" Text="title"></asp:Label></div>
<div id="author-time">
作者:<asp:Label ID="author" runat="server" Text="author"></asp:Label>
发布时间:<asp:Label ID="time" runat="server" Text="time"></asp:Label>
点击:<asp:Label ID="hit" runat="server" Text="hit"></asp:Label></div>
<div id="divContent">
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>
<div id="devpage">
<cc1:devnetpager id="DevNetPager1" runat="server" devweburl="news/news-detail.aspx?id={0}& DevPage={0}"
pagebreak="@" PageCount="10" PageSize="20"
DefaultPagerBool="true" DevPageStyle="1" FirstAndLastPageShow="false" TextBoxGoToOrDropDownGoToShow="false" TextBoxGoToOrDropDownGoTo="False" PageNavStyle="[{0}]" DropDownGoToValue="第{0}页">
</cc1:devnetpager> </div>
</div> </div>
</form></BODY>detail.aspx.cs代码:public partial class news_news_detail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection Con = new SqlConnection(ConfigurationManager.AppSettings["ConSql"]);
Con.Open();
SqlCommand myCommand = Con.CreateCommand(); int newsid = Convert.ToInt32(Request.QueryString["id"].ToString());//获取文章id号
myCommand.CommandText = "select * from 综合新闻 where id=" + newsid;
SqlDataReader myReader = myCommand.ExecuteReader(); while (myReader.Read())
//if (myReader.Read())
{ title.Text = myReader["标题"].ToString();
author.Text = myReader["作者"].ToString();
time.Text = myReader["发布时间"].ToString();
hit.Text = myReader["点击"].ToString();
string str = myReader["内容"].ToString();
// Label1.Text = content;
//Label1.Text = OutputBySize(str); DevNetPager1.PageContent = str;//调用devpage 2005控件
Literal1.Text = DevNetPager1.DevPagerArticle;
}
myReader.Close(); //如果出现reader需要关闭,则要添加这个语句
}
<body>
<form id="newsform" runat="server">
<div class="news-adv">
<div class="logo">
<img class="logo" src="../image/earth/earth-01.gif" />
</div>
<div class="pict">此处显示 class "pict" 的内容</div>
</div>
<div id="modernbricksmenu2">
<ul>
<li style="margin-left: 1px"><a href="#" title="Home">首页</a></li>
<li id="current"><a href="#" title="New">新闻综述</a></li>
<li><a href="">深度观察</a></li>
<li><a href="">人物追踪</a></li>
<li><a href="">媒体传真</a></li>
<li><a href="">我的评论</a></li>
<li><a href="">网络调查</a></li>
</ul>OnClick="ImageButton1_Click" />
</div>
<div id="news-detail">
<div id="content-out">
<div id="position">首页 » 新闻综述 » 详细内容</div>
<div id="title">
<asp:Label ID="title" runat="server" Text="title"></asp:Label></div>
<div id="author-time">
作者:<asp:Label ID="author" runat="server" Text="author"></asp:Label>
发布时间:<asp:Label ID="time" runat="server" Text="time"></asp:Label>
点击:<asp:Label ID="hit" runat="server" Text="hit"></asp:Label></div>
<div id="divContent">
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</div>
<div id="devpage">
<cc1:devnetpager id="DevNetPager1" runat="server" devweburl="news/news-detail.aspx?id={0}& DevPage={0}"
pagebreak="@" PageCount="10" PageSize="20"
DefaultPagerBool="true" DevPageStyle="1" FirstAndLastPageShow="false" TextBoxGoToOrDropDownGoToShow="false" TextBoxGoToOrDropDownGoTo="False" PageNavStyle="[{0}]" DropDownGoToValue="第{0}页">
</cc1:devnetpager> </div>
</div> </div>
</form></BODY>detail.aspx.cs代码:public partial class news_news_detail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection Con = new SqlConnection(ConfigurationManager.AppSettings["ConSql"]);
Con.Open();
SqlCommand myCommand = Con.CreateCommand(); int newsid = Convert.ToInt32(Request.QueryString["id"].ToString());//获取文章id号
myCommand.CommandText = "select * from 综合新闻 where id=" + newsid;
SqlDataReader myReader = myCommand.ExecuteReader(); while (myReader.Read())
//if (myReader.Read())
{ title.Text = myReader["标题"].ToString();
author.Text = myReader["作者"].ToString();
time.Text = myReader["发布时间"].ToString();
hit.Text = myReader["点击"].ToString();
string str = myReader["内容"].ToString();
// Label1.Text = content;
//Label1.Text = OutputBySize(str); DevNetPager1.PageContent = str;//调用devpage 2005控件
Literal1.Text = DevNetPager1.DevPagerArticle;
}
myReader.Close(); //如果出现reader需要关闭,则要添加这个语句
}
int newsid = Convert.ToInt32(Request.QueryString["id"].ToString());//获取文章id号
这种写法不严谨,没有检查异常情况,比如
1.Request.QueryString["id"] 为null
2.Request.QueryString["id"] 不能转换为 int