最近一直在忙着有关计算机中心的网站。中间遇到了一个小问题就是分页显示的问题。网上也有不少相关的技术与控件,但是我不想那么麻烦去看那些代码。所以就自己写了一些。希望大家能多多指导一些。
我从数据库读取时,直接读到相应的数据。只取前多少条。中间需要前台js与后台cs的交互。网上有好多关于这方面的介绍。
下面是我的代码:
前台:<divid="divRight">
<divid="divInformType">
<inputid="hiddenPrem" type="hidden" runat="server"/>
<inputid="hiddenPage" type="hidden" runat="server"value="10"/>
<asp:ButtonID="btnPrem" runat="server" Text="Button"Height="0" Width="0"
onclick="btnPrem_Click" />
<asp:ButtonID="btnPrem1" runat="server" Text="Button"Height="0" Width="0"
onclick="btnPrem1_Click" />
<asp:Button ID="btnPrem2" runat="server"Text="Button" Height="0" Width="0"
onclick="btnPrem2_Click" />
</div><!--divInformType-->
<div id="divInformContent"></div><!--divInformContent-->
</div><!--"divRight"-->
<divid="divPage"></div>
Js代码:
<scripttype="text/javascript" language="javascript">
function showInformContent()
{
var str="<%=showContent()%>";
vardivInformContent=document.getElementById("divInformContent");
divInformContent.innerHTML=str;
var strPage="<%=showBottomPage()%>";
var divPage=document.getElementById("divPage");
divPage.innerHTML=strPage;
}
function showView(ID)
{
document.getElementById("hiddenPrem").value=ID;
document.getElementById("btnPrem").click();
}
function showInformList(type)
{
switch(type)
{
case1:document.getElementById("hiddenPage").value=10;document.getElementById("hiddenPrem").value="中心动态";document.getElementById("btnPrem1").click();break;
case2:document.getElementById("hiddenPage").value=10;document.getElementById("hiddenPrem").value="教师公告";document.getElementById("btnPrem1").click();break;
case 3:document.getElementById("hiddenPage").value=10;document.getElementById("hiddenPrem").value="学生公告";document.getElementById("btnPrem1").click();break;
}
showInformContent();
}
function showPage(i)
{
document.getElementById("hiddenPage").value=i*10;
document.getElementById("btnPrem2").click()
showInformContent();
}
</script>
Cs 代码:
string strInformType = "";
string strSelect = "";
classConnection conn = new classConnection();
int intPage = 10;
protected void Page_Load(object sender, EventArgs e)
{
string strDate =DateTime.Now.Year.ToString() + "年"+ DateTime.Now.Month.ToString() + "月" +DateTime.Now.Day.ToString() + "日" +" " +DateTime.Now.DayOfWeek.ToString();
labWeatherAndTime.Text =strDate;
labVisit.Text = "您是本站第" + Application["AllGuests"] + "位访客!";
strInformType =Request.QueryString["InformType"];
ScriptManager.RegisterStartupScript(Page, Page.GetType(),"js", "showInformContent()", true);
}
public string showContent()
{
strSelect = "selectInformId,InformTitle,InformTime from Inform where InformType='" +strInformType + "' and InformIsDel='否'";
DataTable dt =conn.connecteDB(strSelect);
string str ="<ul>";
int i = 1;
foreach (DataRow row in dt.Rows)
{
if(i<=intPage&&i>intPage-10)
{
string[] strTimeArray =row[2].ToString().Split(' ');
string strTime =strTimeArray[0].Replace('/', '-');
str += "<lionclick='showView(" + row[0] + ")'><div id='div'><divid='left'><a href='#'>" + row[1] +"</a></div><div id='right'>" + strTime +"</div><hr></div></li>";
}
i++;
}
str += "</ul>";
return str;
}
public string showBottomPage()
{
string strPage = "<tablewidth='700px'><tr>";
strSelect = "select count(*)from Inform where InformType='" + strInformType + "' andInformIsDel='否'";
DataTable dt =conn.connecteDB(strSelect);
int strCount = 0;
foreach (DataRow row in dt.Rows)
{
strCount =int.Parse(row[0].ToString());
}
strPage += "<tdwidth='100px'>当前所在:" +(int.Parse(hiddenPage.Value)) / 10 + "</td><td width='100px'>总页数:" + ((strCount / 10) + 1) + " </td>";
int i = 0;
strPage += "";
while (i * 10 < strCount)
{
i++;
strPage += "<tdonclick='showPage("+i+")' width='40px'><a href='#'>" +i + "</a> </td>";
}
strPage +="<td></td></tr></table>";
return strPage;
}
protected void btnPrem_Click(object sender, EventArgs e)
{
Response.Redirect("webInform.aspx?InformId=" +hiddenPrem.Value);
}
protected void btnPrem1_Click(object sender, EventArgs e)
{
strInformType = hiddenPrem.Value;
}
protected void btnPrem2_Click(object sender, EventArgs e)
{
intPage =int.Parse(hiddenPage.Value);
}