关于前台的页面我们后台输出
一。从后台直接输出HTML格式的内容。
二。我们一开始是在AJAX到后台,后台得到DATATABLE传递过来。然后对应的数据进行解析,JS输出到前台(带分页)。
缺点:JS的内容容易被看到。
JS第一种格式:一条条数据,并带有对应的操作(删除,查看)等功能。)——很实用。列出数据并带有分页时。
/* ------------------------------------- 分页模块(编辑,删除,其他) ------------------------------------- */ function pager(page, maxPage, total, per, countsIsVisible, key, colum, utilUrl, editUrl, otherSetName, otherSetUrl)//分页的辅助方法 { //(请求的当前页,最大页数,总信息量,页的大小,详细分页信息是否可见,"关键字的<input/>ID",数据的列数,"字典表类型","后台处理类URL","添加或修改标题","添加或修改页面") var first = "<font style='font-size:12px'>首页</font>"; var previous = "<font style='font-size:12px'>上一页</font>"; var next = "<font style='font-size:12px'>下一页</font>"; var last = "<font style='font-size:12px'>尾页</font>"; var s = "<div id='pagerDiv' class='pager-block' style='width:100%;text-align:right'><div class='pager-links' style='float:left; text-align:left; font-family:courier new,sans-serif'>"; //判断当前页是否是第一页,从而控制显示方式 if (page == 1) { s += (first + " " + previous + " <b>"); } else { if (first != "") s += ("<a href='javascript:getPageListSet(1,\"" + key + "\"," + colum + ",\"" + utilUrl + "\",\"" + editUrl + "\",\"" + otherSetName + "\",\"" + otherSetUrl + "\")'>" + first + "</a> "); s += ("<a href='javascript:getPageListSet(" + (page - 1) + ",\"" + key + "\"," + colum + ",\"" + utilUrl + "\",\"" + editUrl + "\",\"" + otherSetName + "\",\"" + otherSetUrl + "\")'>" + previous + "</a> <b>"); } //判断:当总页数多于6页时,省略中间页码,只显示第一页和最后一页 var j = (page - 5 < 1) ? 1 : page - 5; var k = (page + 5 > maxPage) ? maxPage : page + 5; //显示第一页 if (j > 1) s += " <a href='javascript:getPageListSet(1,\"" + key + "\"," + colum + ",\"" + utilUrl + "\",\"" + editUrl + "\",\"" + otherSetName + "\",\"" + otherSetUrl + "\")'>1</a> ... "; //显示中间页码 for (var i = j; i < k + 1; i++) { if (page == i) { s += ("<span class='t2'>" + i + "</span> "); continue; } s += ("<a href='javascript:getPageListSet(" + i + ",\"" + key + "\"," + colum + ",\"" + utilUrl + "\",\"" + editUrl + "\",\"" + otherSetName + "\",\"" + otherSetUrl + "\")'>" + i + "</a> "); } //显示最后一页 if (maxPage > k) s += " ... <a href='javascript:getPageListSet(" + maxPage + ",\"" + key + "\"," + colum + ",\"" + utilUrl + "\",\"" + editUrl + "\",\"" + otherSetName + "\",\"" + otherSetUrl + "\")'>" + maxPage + "</a> "; //判断当前页是否是最后一页,从而控制显示方式 if (page == maxPage) { s += ("</b>" + next + " " + last); } else { s += ("</b><a href='javascript:getPageListSet(" + (page + 1) + ",\"" + key + "\"," + colum + ",\"" + utilUrl + "\",\"" + editUrl + "\",\"" + otherSetName + "\",\"" + otherSetUrl + "\")'>" + next + "</a> "); if (last != "") s += ("<a href='javascript:getPageListSet(" + maxPage + ",\"" + key + "\"," + colum + ",\"" + utilUrl + "\",\"" + editUrl + "\",\"" + otherSetName + "\",\"" + otherSetUrl + "\")'>" + last + "</a>"); } //根据输入的页号,直接显示该页数据 s += " 转到 <input type='text'id='gotopage' name='gotopage' value='" + page + "' size='3' /> <input type='button'class='button' value='Go' style='height:19px;' onclick='ongoto(\"" + maxPage + "\",\"" + key + "\"," + colum + ",\"" + utilUrl + "\",\"" + editUrl + "\",\"" + otherSetName + "\",\"" + otherSetUrl + "\")' />"; s += ("</div>"); //控制“总记录”“每页”“总页数”的显示 if (countsIsVisible) { s += ("<div class='pager-stat' style='float:lift;'>"); s += ("总记录:<span class='t2'>" + total + "</span> "); s += ("每页:<span class='t2'>" + per + "</span> "); s += ("总页数:<span class='t2'>" + maxPage + "</span></div>"); } s += "</div>"; return s; } function ongoto(maxPage, key, colum, utilUrl, otherSetName, otherSetUrl)//直接跳转到设定好的某一页 { if(isDigits("gotopage")){ var p = document.getElementById("gotopage").value; if(p!=0){ p = (parseInt(p) > parseInt(maxPage)) ? maxPage : p; getPageListSet(p, key, colum, utilUrl, otherSetName, otherSetUrl);} else{ alert("请输入正确的页码数字!"); getPageListSet(1, key, colum, utilUrl, otherSetName, otherSetUrl); return false; } } else{ alert("请输入正确的页码数字!"); getPageListSet(1, key, colum, utilUrl, otherSetName, otherSetUrl); return false; } } function del(id, utilUrl, key, colum, otherSetName, otherSetUrl)//删除一条数据(id,"后台处理类","编辑页面","关键字的<input/>ID",数据列数,"字典表类型") { if (confirm("您确定删除此条数据吗?")) { $.ajax({ url: utilUrl, type: 'POST', data: "id=" + id + "&operationType=" + 3, dataType: 'json', timeout: 1000, error: function(data) { alert(data.result); }, success: function(data) { alert(data.result); } }); getPageListSet(document.getElementById("gotopage").value, key, colum, utilUrl, otherSetName, otherSetUrl); } } /* ------------------------------------- 查询,并返回分页信息(注意页面的命名规则,dataTb,pageTb分别是存放数据和存放分页信息的Table) ------------------------------------- */ function removeAll() //清空容器中已经存在的数据(注意页面中的容器的命名规则) { var t = document.getElementById("dataTb"); //数据容器 var pageTb = document.getElementById("pageTb"); //分页信息容器 for (var i = t.rows.length - 1; i >= 1; i--) { t.deleteRow(i); } for (var j = pageTb.rows.length - 1; j >= 0; j--) { pageTb.deleteRow(0); } } function getPageListSet(pageIndex, keyInputId, colum, utilUrl, otherSetName, otherSetUrl)//获取含有删除,修改,设置功能的分页数据(当前请求的页码,"关键字的<input/>ID",数据的列数,"后台处理类URL","添加或修改页面的URL","设置弹出表单的标题名称","查看详情页面对应的URL") { var operationType = 1; //操作类型 var pdata = "operationType=" + operationType + "&pageIndex=" + pageIndex; //操作字符串 参数传递 if (keyInputId != "") { var xx = keyInputId.split(","); //获得关键字的数组 for (var i in xx) { var keyi = xx[i]; pdata += "&" + keyi + "=" + document.getElementById(keyi).value; //遍历并添加 。因为这里要取到对应的值,所以 传递的是 ID值。 } } else { var x = ""; pdata += "&startTime=" + x + "&endTime=" + x + "&Question=" + x + ""; //若取不到。这里直接写为空 } $.ajax({ url: utilUrl, //后台处理类 //body 的是到 'QuestionUtil.aspx' type: "POST", data: pdata, dataType: "json", timeout: 1000, error: function(data) { /*alert("出现错误!或者是您没有权限!");*/ }, success: function(data) { removeAll(); //首先清空网页中已经存在的历史数据 if (data.result != null)//后台出现错误,返回的是"{result:'查询失败!'}",则提示错误信息 { alert(data.result); } else { if (data.total == 0)//如果返回的数据数为0 { alert("您所要查询的数据不存在!"); } else { var table = document.getElementById("dataTb"); //获得显示数据的容器 var cell, row, shenhe; var width = window.screen.availWidth; var height = window.screen.availHeight; var iRow; //在容器中输出数据 for (iRow = 0; iRow < data.rows.length; iRow++) {//按行输出 row = table.insertRow(iRow + 1); //因为 TABLE的标头已经在HTML页面设置完成 所以每行都要 +1 row.setAttribute("onmouseover", "this.className='highlight'"); row.setAttribute("onmouseout", "this.className=''"); if (iRow % 2 != 0) { row.style.background = "#DFEFFA"; } //设置奇数偶数行的背景不一样 for (var iCell = 0; iCell < colum + 1; iCell++) { //按列输出 COLUM 是6 我们共有7 列 所以每列都要 +1 cell = row.insertCell(iCell); //从零到6 iCell < colum + 1 小于 7 if (iCell == 0) { var tag = document.getElementById("tag").value; //tag 赋值 id = data.rows[iRow].cell[5]; //ID 是传过来的 第六个值 从0开始 //编辑,删除,“查看详细内容是”从页面传递过来的参数设置的。 cell.innerHTML = "<a href='javascript:del(\"" + id + "\",\"" + utilUrl + "\",\"" + keyInputId + "\"," + colum + ",\"" + otherSetName + "\",\"" + otherSetUrl + "\")'>删除</a>|<a onclick=\"javascript:GB_myShow('" + otherSetName + "','" + otherSetUrl + "?id=" + id + "');\" href='javascript:void(0) '>" + otherSetName + "</a>"; cell.setAttribute("align", "center"); continue; } if (iCell == 1) { //var isActive = data.rows[iRow].cell[0]; var check = data.rows[iRow].cell[6]; // if (isActive == "True") { if (check == "审核通过" || check == "信审核通过" || check == "信审核通过回答") { cell.innerHTML = "<img src='http://www.cnblogs.com/OpanelStyle/img/check_right.gif'/>"; } if (check == "审核未通过") { cell.innerHTML = "<img src='http://www.cnblogs.com/OpanelStyle/img/check_error.gif'/>"; } // } // else { // if (check == "未审核" || check == "信未审核") { // cell.innerHTML = "<lable><span style='color:Red'>未审核</span></lable>"; // } // } cell.setAttribute("align", "center"); continue; } if (iCell == 2) {//标题 var Question = data.rows[iRow].cell[1]; if (Question.length >= 28) { Question = Question.substring(0, 28) + "..."; } else { Question = data.rows[iRow].cell[1]; } cell.innerHTML = Question; cell.setAttribute("align", "center"); continue; } // if (iCell == 3) {//答案 // var answer = data.rows[iRow].cell[2]; // if (answer.length >= 35) { // answer = answer.substring(0, 35) + "..."; // } // else { // answer = data.rows[iRow].cell[2]; // } // cell.innerHTML = answer; // cell.setAttribute("align", "center"); // continue; // } if (iCell == 5) { var date = data.rows[iRow].cell[4]; date = date.substr(0, date.lastIndexOf(":")); cell.innerHTML = date; cell.setAttribute("align", "center"); continue; } cell.setAttribute("align", "center"); cell.appendChild(document.createTextNode(data.rows[iRow].cell[iCell - 1])); cell = null; } row = null; } var pageTable = document.getElementById("pageTb"); //获得分页模块的容器 var pageIndex = data.page; //从后台获取索引页号 var total = data.total; //从后台获取总的数据量 var pageSize = 10; //页的大小 var maxPage = 0; //最大页 if (total % pageSize == 0)//计算最大页数 { maxPage = Math.floor(total / pageSize); } else { maxPage = Math.floor(total / pageSize) + 1; } //输出分页模块 if (data.rows.length != 0) { row1 = pageTable.insertRow(0); cell = row1.insertCell(0); row1.setAttribute("colspan", "11"); //调用pager(page, maxPage, total, per, countsIsVisible)获得分页模块,并从容器中输出 cell.innerHTML = pager(pageIndex, maxPage, total, pageSize, true, keyInputId, colum, utilUrl, otherSetName, otherSetUrl); } } } } }); } //刷新重置 function reset() { window.location.reload() ; }
第二种方式:输出带图片的各种信息。不带操作。只是有对应的查看的超链接。(很实用。例如广告排名)
/* ------------------------------------- 分页模块(编辑,删除,其他) ------------------------------------- */ function pager(page, maxPage, total, per, countsIsVisible, key, colum, tableType, utilUrl)//分页的辅助方法 { //(请求的当前页,最大页数,总信息量,页的大小,详细分页信息是否可见,"关键字的<input/>ID",数据的列数,"字典表类型","后台处理类URL","添加或修改页面") var first = "<font style='font-size:12px'>首页</font>"; var previous = "<font style='font-size:12px'>上一页</font>"; var next = "<font style='font-size:12px'>下一页</font>"; var last = "<font style='font-size:12px'>尾页</font>"; var s = "<div id='pagerDiv' class='pager-block' style='width:100%;text-align:right'><div class='pager-links' style='float:left; text-align:left; font-family:courier new,sans-serif'>"; //判断当前页是否是第一页,从而控制显示方式 if (page == 1) { s += (first + " " + previous + " <b>"); } else { if (first != "") s += ("<a href='javascript:getPageListSet(1,\"" + key + "\"," + colum + ",\"" + tableType + "\",\"" + utilUrl + "\")'>" + first + "</a> "); s += ("<a href='javascript:getPageListSet(" + (page - 1) + ",\"" + key + "\"," + colum + ",\"" + tableType + "\",\"" + utilUrl + "\")'>" + previous + "</a> <b>"); } //判断:当总页数多于6页时,省略中间页码,只显示第一页和最后一页 var j = (page - 5 < 1) ? 1 : page - 5; var k = (page + 5 > maxPage) ? maxPage : page + 5; //显示第一页 if (j > 1) s += " <a href='javascript:getPageListSet(1,\"" + key + "\"," + colum + ",\"" + tableType + "\",\"" + utilUrl + "\")'>1</a> ... "; //显示中间页码 for (var i = j; i < k + 1; i++) { if (page == i) { s += ("<span class='t2'>" + i + "</span> "); continue; } s += ("<a href='javascript:getPageListSet(" + i + ",\"" + key + "\"," + colum + ",\"" + tableType + "\",\"" + utilUrl + "\")'>" + i + "</a> "); } //显示最后一页 if (maxPage > k) s += " ... <a href='javascript:getPageListSet(" + maxPage + ",\"" + key + "\"," + colum + ",\"" + tableType + "\",\"" + utilUrl + "\")'>" + maxPage + "</a> "; //判断当前页是否是最后一页,从而控制显示方式 if (page == maxPage) { s += ("</b>" + next + " " + last); } else { s += ("</b><a href='javascript:getPageListSet(" + (page + 1) + ",\"" + key + "\"," + colum + ",\"" + tableType + "\",\"" + utilUrl + "\")'>" + next + "</a> "); if (last != "") s += ("<a href='javascript:getPageListSet(" + maxPage + ",\"" + key + "\"," + colum + ",\"" + tableType + "\",\"" + utilUrl + "\")'>" + last + "</a>"); } //根据输入的页号,直接显示该页数据 s += " 转到 <input type='text'id='gotopage' name='gotopage' value='" + page + "' size='3' /> <input type='button'class='button' value='Go' style='height:19px;' onclick='ongoto(\"" + key + "\"," + colum + ",\"" + tableType + "\",\"" + utilUrl + "\")' />"; s += ("</div>"); //控制“总记录”“每页”“总页数”的显示 if (countsIsVisible) { s += ("<div class='pager-stat' style='float:lift;'>"); s += ("总记录:<span class='t2'>" + total + "</span> "); s += ("每页:<span class='t2'>" + per + "</span> "); s += ("总页数:<span class='t2'>" + maxPage + "</span></div>"); } s += "</div>"; return s; } function isDigits(id)//验证字符串是否符合正整数格式 { var str = document.getElementById(id).value var regu = /^\d+$/; return regu.test(str); } function ongoto(key, colum, tableType, utilUrl)//直接跳转到设定好的某一页 { if (!isDigits("gotopage") || document.getElementById("gotopage").value == "0") { alert("请你正确选择页码!"); window.location.reload(); } else { getPageListSet(document.getElementById("gotopage").value, key, colum, tableType, utilUrl); } } /* ------------------------------------- 查询,并返回分页信息(注意页面的命名规则,dataTb,pageTb分别是存放数据和存放分页信息的Table) ------------------------------------- */ function removeAll() //清空容器中已经存在的数据(注意页面中的容器的命名规则) { var t = document.getElementById("dataTb"); //数据容器 var pageTb = document.getElementById("pageTb"); //分页信息容器 for (var i = t.rows.length - 1; i >= 1; i--) { t.deleteRow(i); } for (var j = pageTb.rows.length - 1; j >= 0; j--) { pageTb.deleteRow(0); } } function getPageListSet(pageIndex, keyInputId, colum, tableType, utilUrl)//获取含有删除,修改,设置功能的分页数据(当前请求的页码,"关键字的<input/>ID",数据的列数,"数据库表的类型","后台处理类URL","添加或修改页面","设置名称","设置页面") { var operationType = 1; //操作类型 var pdata = "operationType=" + operationType + "&pageIndex=" + pageIndex; //alert(tableType); $.ajax({ url: utilUrl, //后台处理类 type: "POST", data: pdata, dataType: "json", timeout: 4000, error: function(data) { alert("出现错误或者是您没有权限!"); }, success: function(data) { removeAll(); //首先清空网页中已经存在的历史数据 if (data.result != null)//后台出现错误,返回的是"{result:'查询失败!'}",则提示错误信息 { alert(data.result); } else { if (data.total == 0)//如果返回的数据数为0 { alert("您所要查询的数据不存在!"); } else { var table = document.getElementById("dataTb"); //获得显示数据的容器 var cell, row; var width = window.screen.availWidth; var height = window.screen.availHeight; var iRow; //在容器中输出数据 for (iRow = 0; iRow < data.rows.length; iRow++) { row = table.insertRow(iRow); row.setAttribute("onmouseover", "this.style.backgroundColor='#F6F6F6'"); row.setAttribute("onmouseout", "this.style.backgroundColor=''"); var Id = data.rows[iRow].cell[10]; var title = data.rows[iRow].cell[0]; var beginDateTime = data.rows[iRow].cell[1]; var endDateTime = data.rows[iRow].cell[2]; var Photo = data.rows[iRow].cell[3]; var ProvinceCaption = data.rows[iRow].cell[4]; var CityCaption = data.rows[iRow].cell[5]; var Contents = data.rows[iRow].cell[6]; var LowNum = data.rows[iRow].cell[7]; var Memo = data.rows[iRow].cell[8]; var UserName = data.rows[iRow].cell[9]; var beginDate = beginDateTime.substr(0, beginDateTime.lastIndexOf(" ")); var endDate = endDateTime.substr(0, endDateTime.lastIndexOf(" ")); for (var iCell = 0; iCell < colum + 1; iCell++) { cell = row.insertCell(iCell); if (iCell == 0) { var str = ""; str += "<div class='play_list'><a href='ActivityDetail.aspx?Id=" + Id + "&DetailTyle=3'target='_blank'><img alt='" + title + "' border='0' height='98' width='148' src='" + Photo + "' /></a>"; str += " <h4 style ='text-align :left;'><small>[活动]</small> <span><a href='ActivityDetail.aspx?Id=" + Id + "&DetailTyle=3' target='_blank'>" + title + "</a></span></h4>"; str += "<div class='xq'><dl> <dt>时 间:</dt><dd style ='text-align :left;'>" + beginDate + "<span>至</span>" + endDate + "</dd></dl>"; str += "<dl><dt>地 点:</dt><dd style ='text-align :left;'>" + ProvinceCaption + "" + CityCaption + "</dd></dl><dl> <dt>组织者:</dt><dd style ='text-align :left;'>" + UserName + "</dd></dl></div>"; str += "<div style ='text-align :left;'><a href='ActivityDetail.aspx?Id=" + Id + "&DetailTyle=3' class='wycj_button' target='_blank'><img src='images/baoming.gif' /></a></div><div class='time'><span><em>1740</em>人已报名</span></div></div>"; cell.innerHTML = str; cell.setAttribute("align", "center"); //cell.setAttribute("height", "30"); continue; } cell.setAttribute("align", "center"); // cell.appendChild(document.createTextNode(data.rows[iRow].cell[iCell - 1])); cell = null; } row = null; } var pageTable = document.getElementById("pageTb"); //获得分页模块的容器 var pageIndex = data.page; //从后台获取索引页号 var total = data.total; //从后台获取总的数据量 var pageSize = 10; //页的大小 var maxPage = 0; //最大页 if (total % pageSize == 0)//计算最大页数 { maxPage = Math.floor(total / pageSize); } else { maxPage = Math.floor(total / pageSize) + 1; } //输出分页模块 if (data.rows.length != 0) { row1 = pageTable.insertRow(0); cell = row1.insertCell(0); row1.setAttribute("colspan", "11"); //调用pager(page, maxPage, total, per, countsIsVisible)获得分页模块,并从容器中输出 cell.innerHTML = pager(pageIndex, maxPage, total, pageSize, true, keyInputId, colum, tableType, utilUrl); } } } } }); }
三。把分页模块独立到后台。然后从后台输出HTML格式的此页码的数据。(带分页)。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using Web.Cpanel.Dics; using DBUtility; namespace Web { public partial class DefaultTwo : System.Web.UI.Page { private int pageNum { get; set; } private int all { get; set; } database.BLL.TeacherOnline tbll = new database.BLL.TeacherOnline(); database.Model.TeacherOnline tmodel = new database.Model.TeacherOnline(); database.BLL.StudentOnline sbll = new database.BLL.StudentOnline(); database.Model.StudentOnline smodel = new database.Model.StudentOnline(); protected void Page_Load(object sender, EventArgs e) { try { if (Session["usertype"] == null) { userType.Value = ""; LinkButton1.Visible = false; } else { userType.Value = Session["usertype"].ToString(); LinkButton1.Visible = true; } Notice();//网站公告 huobanP();//合作伙伴 OperationType operationType = (OperationType)Enum.Parse(typeof(OperationType), Request["operationType"].ToString());//获取操作类型 switch (operationType) { case OperationType.Question://最新问题 type.Value = operationType.ToString(); QuestionNew(); break; case OperationType.Picture://专家图片 type.Value = operationType.ToString(); PictureShow(); break; case OperationType.Notice://网站公告 AllNotice(); break; case OperationType.FNotice://网站分页公告方法 PAGE参数 第几页 try { int param = int.Parse(Request["page"].ToString()); AllNotice(param); } catch { //Response.Write("<script type='text/javascript'>alert('请您输入正确的页码!');</script>"); AllNotice(1); } Common.WebMessage.Show(this, "请您输入正确的页码!"); AllNotice(); } break; default: break; } } catch { } } /// <summary> /// 网站公告(左侧公告) /// </summary> public void Notice() { string sql = "select Id,Title from SiteNotice order by CreateTime DESC"; DataTable dt = DBUtility.DbHelperSQL.Query(sql).Tables[0]; if (dt.Rows.Count < 4) { for (int i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["Title"].ToString().Length > 10) { dt.Rows[i]["Title"] = dt.Rows[i]["Title"].ToString().Substring(0, 10) + "......"; } else { dt.Rows[i]["Title"] = dt.Rows[i]["Title"].ToString(); } notice.InnerHtml += "<li><a href='DefaultThird.aspx?operationType=7&Id=" + dt.Rows[i]["Id"].ToString() + "'>" + dt.Rows[i]["Title"].ToString() + "</a></li>"; } } else { for (int i = 0; i < 4; i++) { if (dt.Rows[i]["Title"].ToString().Length > 10) { dt.Rows[i]["Title"] = dt.Rows[i]["Title"].ToString().Substring(0, 10) + "......"; } else { dt.Rows[i]["Title"] = dt.Rows[i]["Title"].ToString(); } notice.InnerHtml += "<li><a href='DefaultThird.aspx?operationType=7&Id=" + dt.Rows[i]["Id"].ToString() + "'>" + dt.Rows[i]["Title"].ToString() + "</a></li>"; } } } /// <summary> /// 最新问题 /// </summary> public void QuestionNew() { try { Photo.InnerHtml = "<span><img alt='' src='../OpanelStyle/img/title_2.gif' /></span><div><a href='Default.aspx'>首页</a> ><span>最新提问</span></div>";//导航图片及文字显示 Information.InnerHtml = "<ul><li><a href='DefaultTwo.aspx?operationType=5' class='hover'>最新提问</a></li><li><a href='DefaultTwo.aspx?operationType=6'>专家风采</a></li><li><a href='DefaultTwo.aspx?operationType=7'>网站公告</a></li></ul>";//信息中心高亮显示 int i = 0; string sql = "select top(15) Id,Question,Answer,CreateTime from QuestionInfo where Answer<>'' order by CreateTime desc"; DataTable dt = DBUtility.DbHelperSQL.Query(sql).Tables[0]; string Question = ""; if (dt.Rows.Count < 20) { for (i = 1; i < dt.Rows.Count + 1; i++) { if (dt.Rows[i - 1]["Question"].ToString().Length > 28) {//当问题超过28个字时,多余字用"....."代替 Question = dt.Rows[i - 1]["Question"].ToString().Substring(0, 30) + "......"; } else { Question = dt.Rows[i - 1]["Question"].ToString(); } question.InnerHtml += "<li><a href='DefaultThird.aspx?operationType=5&Id=" + dt.Rows[i - 1]["Id"].ToString() + "'>" + i + "." + Question + "</a><span>" + dt.Rows[i - 1]["CreateTime"].ToString() + "</span></li>"; } } else { for (i = 1; i < 21; i++) { if (dt.Rows[i - 1]["Question"].ToString().Length > 28) {//当问题超过28个字时,多余字用"....."代替 Question = dt.Rows[i - 1]["Question"].ToString().Substring(0, 30) + "......"; } else { Question = dt.Rows[i - 1]["Question"].ToString(); } question.InnerHtml += "<li><a href='DefaultThird.aspx?operationType=5&Id=" + dt.Rows[i - 1]["Id"].ToString() + "'>" + i + "." + Question + "</a><span>" + dt.Rows[i - 1]["CreateTime"].ToString() + "</span></li>"; } } } catch { } } /// <summary> /// 合作伙伴 /// </summary> public void huobanP() { try { DataTable dt = DBUtility.DbHelperSQL.Query("select ComName,ComPage,Photo from FriendsLinks where IsActive='true'").Tables[0]; if (dt.Rows.Count < 5) { int k = dt.Rows.Count; for (int g = 0; g < k; g++) { huoban.InnerHtml += "<li><a href='" + dt.Rows[g]["ComPage"].ToString() + "' target='_blank'><img src='" + dt.Rows[g]["Photo"].ToString() + "' alt='" + dt.Rows[g]["ComName"].ToString() + "' width ='160' height='68'/></a>"; } while (k < 5) { huoban.InnerHtml += "<li><a href='http://www.baidu.com' target='_blank'><img src='App_Themes/images/nopic.gif' alt='在线答疑' width ='160' height='68'/></a>"; k++; } } if (dt.Rows.Count == 5) { for (int i = 0; i < dt.Rows.Count; i++) { huoban.InnerHtml += "<li><a href='" + dt.Rows[i]["ComPage"].ToString() + "' target='_blank'><img src='" + dt.Rows[i]["Photo"].ToString() + "' alt='" + dt.Rows[i]["ComName"].ToString() + "' width ='160' height='68'/></a>"; } } } catch { } } /// <summary> /// 专家图片 /// </summary> public void PictureShow() { try { Photo.InnerHtml = "<span><img alt='' src='../OpanelStyle/img/title_1.gif' /></span><div><a href='Default.aspx'>首页</a> ><span>专家风采</span></div>";//导航图片及文字显示 Information.InnerHtml = "<ul><li><a href='DefaultTwo.aspx?operationType=5'>最新提问</a></li><li><a href='DefaultTwo.aspx?operationType=6' class='hover'>专家风采</a></li><li><a href='DefaultTwo.aspx?operationType=7'>网站公告</a></li></ul>";//信息中心高亮显示 int i = 0; //string sql1 = "select UserName,RealName,Photo,Memo from TeacherUser where UserName in (select top 10 UserName from TeacherUser order by NewId()) order by UserName ASC";//头像,用户名查询语句 排序需求 双重嵌套 NEWID 是排序 不能和 ASC 一起 // string sql1 = "select UserName,RealName,Photo,SubjectId from V_TeacherSubject where UserName in (select top 10 UserName from TeacherUser order by NewId())"; string sql1 = "select top (10) UserName,RealName,Photo,SubjectId from V_TeacherSubject order by NewId()"; DataTable dt1 = DBUtility.DbHelperSQL.Query(sql1).Tables[0]; string sql3 = "select Id,Caption from D_Subject"; DataTable dt3 = DBUtility.DbHelperSQL.Query(sql3).Tables[0]; picture.InnerHtml = ""; string[] SubCollect = new string[10]; for (i = 0; i < 10; i++) { SubCollect[i] = ""; string[] Split = dt1.Rows[i]["SubjectId"].ToString().Split(new char[] { ',' }); for (int k = 0; k < dt3.Rows.Count; k++) { for (int j = 0; j < Split.Length; j++) { if (j == 1) { break; } if (dt3.Rows[k]["Id"].ToString().Equals(Split[j])) { SubCollect[i] = SubCollect[i] + dt3.Rows[k]["Caption"].ToString() + ","; } } } Split = null; SubCollect[i] = SubCollect[i].ToString().Substring(0, SubCollect[i].ToString().Length - 1); picture.InnerHtml += "<li><a href='DefaultThird.aspx?operationType=6&UserName=" + dt1.Rows[i]["UserName"].ToString() + "' target='_blank'><img src='" + dt1.Rows[i]["photo"].ToString() + "' width='120' height='120'></a><p><a href='DefaultThird.aspx?operationType=6&UserName=" + dt1.Rows[i]["UserName"].ToString() + "' target='_blank'>" + dt1.Rows[i]["RealName"].ToString() + "</a></p><center><p>主 讲:<span>" + SubCollect[i] + "</span></p></center></li>"; } SubCollect = null; } catch { } } /// <summary> /// 网站公告 /// </summary> public void AllNotice() { try { Photo.InnerHtml = "<span><img alt='' src='../OpanelStyle/img/title_4.gif' /></span><div><a href='Default.aspx'>首页</a> ><span>网站公告</span></div>";//导航图片及文字显示 Information.InnerHtml = "<ul><li><a href='DefaultTwo.aspx?operationType=5'>最新提问</a></li><li><a href='DefaultTwo.aspx?operationType=6'>专家风采</a></li><li><a href='DefaultTwo.aspx?operationType=7' class='hover'>网站公告</a></li></ul>";//信息中心高亮显示 if (pageNum < 1) { pageNum = 1; } if (all < 1) { all = Convert.ToInt32(DbHelperSQL.GetSingle("select count(1) from SiteNotice where 1=1", null)); } int maxPage; if (all % 10 == 0)//计算最大页数 { maxPage = (all / 10); } else { maxPage = (all / 10) + 1; } DataTable dt = DBUtility.DbHelperSQL.QueryByPage("SiteNotice", "Id,Title,CreateTime", "Id", "CreateTime", 10, pageNum, "asc", "1=1").Tables[0];//取出指定页面的数据 if (dt.Rows.Count != 0) { for (int i = 1; i < dt.Rows.Count + 1; i++) { pager.InnerHtml += "<li><a href='DefaultThird.aspx?operationType=7&Id=" + dt.Rows[i - 1]["Id"].ToString() + "'>" + i + "." + dt.Rows[i - 1]["Title"].ToString() + "</a><span style='left'>" + dt.Rows[i - 1]["CreateTime"].ToString() + "</span></li>"; } pageList(maxPage); } } catch { } } /// <summary> /// 网站公告分页数据 /// </summary> public void AllNotice(int i)//参数 第几页 { try { Photo.InnerHtml = "<span><img alt='' src='../OpanelStyle/img/title_4.gif' /></span><div><a href='Default.aspx'>首页</a> ><span>网站公告</span></div>";//导航图片及文字显示 Information.InnerHtml = "<ul><li><a href='DefaultTwo.aspx?operationType=5'>最新提问</a></li><li><a href='DefaultTwo.aspx?operationType=6'>专家风采</a></li><li><a href='DefaultTwo.aspx?operationType=7' class='hover'>网站公告</a></li></ul>";//信息中心高亮显示 pageNum = i; all = Convert.ToInt32(DbHelperSQL.GetSingle("select count(1) from SiteNotice where 1=1", null)); if (all != 0) { int maxPage; if (all % 10 == 0)//计算最大页数 { maxPage = (all / 10); } else { maxPage = (all / 10) + 1; } if (pageNum < 1) { pageNum = 1; } if (pageNum > maxPage) { pageNum = maxPage; } DataTable dt = DBUtility.DbHelperSQL.QueryByPage("SiteNotice", "Id,Title,CreateTime", "Id", "CreateTime", 10, pageNum, "asc", "1=1").Tables[0];//取出指定页面的数据 if (dt.Rows.Count != 0) { for (int s = 1; s < dt.Rows.Count + 1; s++) { pager.InnerHtml += "<li><a href='DefaultThird.aspx?operationType=7&Id=" + dt.Rows[s - 1]["Id"].ToString() + "'>" + s + "." + dt.Rows[s - 1]["Title"].ToString() + "</a><span style='left'>" + dt.Rows[s - 1]["CreateTime"].ToString() + "</span></li>"; } pageList(maxPage); } } else { Response.Write("<script type='javascript'>alert('没有对应数据!');</script>"); };//输出没有相应数据 } catch { } } /// <summary> /// 退出系统 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void LinkButton1_Click(object sender, EventArgs e) { System.Web.Security.FormsAuthentication.SignOut();//从浏览器删除Forms身份验证票据 Session.Abandon(); Response.Redirect("/Default.aspx"); //if (Session["usertype"].ToString() == "student") //{ // DataTable dt = DBUtility.DbHelperSQL.Query("select * from StudentOnline where UserName='" + Session["username"] + "'").Tables[0]; // if (dt.Rows.Count > 0) // { // smodel = sbll.GetModel(int.Parse(dt.Rows[0]["Id"].ToString())); // smodel.Online = false; // smodel.ExitTime = DateTime.Now; // smodel.UpdateTime = DateTime.Now; // sbll.Update(smodel); // } //} //if (Session["usertype"].ToString() == "teacher") //{ // DataTable dt = DBUtility.DbHelperSQL.Query("select * from TeacherOnline where UserName='" + Session["username"] + "'").Tables[0]; // if (dt.Rows.Count > 0) // { // tmodel = tbll.GetModel(int.Parse(dt.Rows[0]["Id"].ToString())); // tmodel.Online = false; // tmodel.ExitTime = DateTime.Now; // tmodel.UpdateTime = DateTime.Now; // tbll.Update(tmodel); // } //} } /// <summary> /// 分页模块 /// </summary> /// <param name="maxPage"></param> protected void pageList(int maxPage) { string s = string.Empty; string first = "<font style='font-size:12px'>首页</font>"; string previous = "<font style='font-size:12px'>上一页</font>"; string next = "<font style='font-size:12px'>下一页</font>"; string last = "<font style='font-size:12px'>尾页</font>"; //判断当前页是否是第一页,从而控制显示方式 if (pageNum == 1) { s += (first + " " + previous + " <b>"); } else { if (first != "") s += ("<a href='DefaultTwo.aspx?operationType=11&page=1'>" + first + "</a> "); s += ("<a href='DefaultTwo.aspx?operationType=11&page=" + (pageNum - 1) + "'>" + previous + "</a> <b>"); } //判断:当总页数多于6页时,省略中间页码,只显示第一页和最后一页 int j = (pageNum - 5 < 1) ? 1 : pageNum - 5; int k = (pageNum + 5 > maxPage) ? maxPage : pageNum + 5; //显示第一页 if (j > 1) s += "<a href='DefaultTwo.aspx?operationType=11&page=1'><font style='font-size:12px'>1</font></a> ... "; //显示中间页码 for (int i = j; i < k + 1; i++) { if (pageNum == i) { s += ("<span><font style='font-size:12px'>" + i + "</font></span> "); continue; } s += ("<a href='DefaultTwo.aspx?operationType=11&page=" + i + "'><font style='font-size:12px'>" + i + "</font></a> "); } //显示最后一页 if (maxPage > k) s += " ... <a href='DefaultTwo.aspx?operationType=11&page=" + maxPage + "'>" + maxPage + "</a> "; //判断当前页是否是最后一页,从而控制显示方式 if (pageNum == maxPage) { s += ("</b>" + next + " " + last); } else { s += ("</b><a href='DefaultTwo.aspx?operationType=11&page=" + (pageNum + 1) + "'>" + next + "</a> "); if (last != "") s += ("<a href='DefaultTwo.aspx?operationType=11&page=" + maxPage + "'>" + last + "</a>"); } //根据输入的页号,直接显示该页数据 s += "<font style='font-size:12px'> 转到</font> <input type='text'id='gotopage' name='gotopage' value='" + pageNum + "' size='2' /> <input type='button'class='button' value='Go' style='height:22px;' onclick='go();'/>"; //控制“总记录”“每页”“总页数”的显示 s += ("<span style='margin-left:320px'></span><font style='font-size:12px'>总记录:</font><span style='margin-left:10px'><font style='font-size:12px'>" + all + "</font></span> "); s += ("<font style='font-size:12px'>共</font><span style='margin-left:4px'><font style='font-size:12px'>" + maxPage + "</font></span><font style='font-size:12px'>页</font></div>"); pageAll.InnerHtml = "<hr/><table width='100%' class='maintable' cellpadding='0' cellspacing='1' border='0' id='Table1'>'" + s + "'</table>"; } } }
四.所有输出的数据后台 集成到 ACTION.ASPX.CS 这一个类中。然后用 ENUM的数据来进行规范。再通过switch 来选择出对应的方法。
protected void Page_Load(object sender, EventArgs e) { try { string type = Request["optype"].ToString(); switch (type.ToLower()) { case "querystudent": querystudent(); break; case "checksubmit"://客观题核分 checksubmit(); break; case "checksubscore": checksubscore(); } } } /// <summary> /// 科目查询 /// </summary> private void querycaption() { com.sdnu902.BLL.D_Subject bll = new com.sdnu902.BLL.D_Subject(); DataTable dt = bll.GetAllList().Tables[0]; StringBuilder sb = new StringBuilder(); sb.Append("<thead><tr>"); sb.Append("<th>科目</th><th>操作</th>"); sb.Append("</tr></thead><tbody>"); if (dt.Rows.Count <= 0) { sb.Append("<tr><td colspan='5'>无数据信息</td></tr>"); } else { foreach (DataRow row in dt.Rows) { sb.Append("<tr id='" + row["id"].ToString() + "'>"); sb.Append("<td>" + row["caption"].ToString() + "</td>"); sb.Append("<td><a href='javascript:modify(\"" + row["ID"].ToString() + "\")'>修改</a>|<a href='javascript:del(\"" + row["ID"].ToString() + "\")'>删除</a></td>"); sb.Append("</tr>"); } } sb.Append("</tbody>"); showHTML(sb.ToString()); } /// <summary> /// 删除科目 /// </summary> private void delcaption() { string id = Request["id"]; com.sdnu902.BLL.D_Subject bll = new com.sdnu902.BLL.D_Subject(); try { bll.Delete(new Guid(id)); showMsg("删除成功"); } catch { showMsg("删除失败"); } } /// <summary> /// 修改科目 /// </summary> private void getCaption() { string sid = Request["id"]; if (!String.IsNullOrEmpty(sid)) { com.sdnu902.BLL.D_Subject bll = new com.sdnu902.BLL.D_Subject(); com.sdnu902.Model.D_Subject model = new com.sdnu902.Model.D_Subject(); model = bll.GetModel(Guid.Parse(sid)); string json = com.sdnu902.Common.JsonHelper.ObjectToJson(model).ToLower(); showJson(json); } } /// <summary> /// 保存科目(添加 和 修改) /// </summary> private void savecaption() { com.sdnu902.BLL.D_Subject bll = new com.sdnu902.BLL.D_Subject(); com.sdnu902.Model.D_Subject model = new com.sdnu902.Model.D_Subject(); string id = Request["id"]; model.caption = Request["addCaption"]; try { if (string.IsNullOrEmpty(id))//add { model.id = System.Guid.NewGuid(); bll.Add(model); showMsg("添加成功"); } else//modify { model.id = Guid.Parse(id); bll.Update(model); showMsg("修改成功"); } } catch { showMsg("保存失败"); } }
其调用的一些输出HTML 和 JSON的方法
#region functions /// <summary> /// 向前台返回html格式信息 /// </summary> /// <param name="msg">要显示的信息</param> private void showHTML(string html) { Response.ContentType = "text/html"; Response.Write(html); Response.Flush(); Response.Close(); } /// <summary> /// 向前台返回json格式的提示信息 /// </summary> /// <param name="msg">要提示的信息</param> private void showMsg(string msg) { msg = msg.Replace("\n", "\\n");//避免回车换行等特殊字符对json格式的影响 msg = msg.Replace("\r", "\\r"); string st = "{\"result\":\"" + msg + "\"}"; Response.ContentType = "application/json"; Response.Write(st); Response.Flush(); Response.Close(); } /// <summary> /// 向前台输出json数据 /// </summary> /// <param name="msg">定义好的json格式数据</param> private void showJson(string msg) { msg = msg.Replace("\n", "\\n"); msg = msg.Replace("\r", "\\r"); Response.ContentType = "application/json"; Response.Write(msg); Response.Flush(); Response.Close(); } #endregion
Tag 关于前台的页面我们后台输出
推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架