源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

asp.net 动态表单之数据分页

  • 时间:2021-01-31 20:39 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp.net 动态表单之数据分页
但是问题来了,不同科系的同学的科目是不一样的,那么我们在数据库设计的时候通常是把学生、某科成绩作为一条记录,那么这个时候我们就需要做一个行转列的逻辑处理了。 解决方法: 使用GridView来生成表单,这个实现起来会比较麻烦,如果要在列表里面显示链接就更不可能了; 生成html再输出到页面中,这个实现起来比较灵活、方便; 基本功能点: 动态生成表头; 数据进行分页; 查询数据; 对每个成绩进行超链接,查看明细; [img]http://files.jb51.net/upload/2010-3/20100316193145610.png[/img]   页面代码
[url=UserGradeDataEdit.aspx?ID={0}&BeModifer={1}&KeepThis=true&TB_iframe=true&height=250&width=500]strtable.AppendFormat("<img src=\"../res/gradeedit.gif\" align=\"baseline\" title=\"修改成绩\" />"); strtable.AppendFormat("</a>"); } strtable.AppendFormat(" <a target=\"_blank\" style=\"text-decoration:underline\" href='http://www.cnblogs.com/CheckObjectManager/pages/LogScoreChangeDetail.aspx?GroupId={0}&TemplateCode={1}&TemplateItemCode={2}&UserName={3}&returnUrl='>", groupID, TemplateCode, templateItemCode, userName); strtable.AppendFormat("<img src=\"../res/gradelog.gif\" align=\"baseline\" title=\"查看日志\" />"); strtable.AppendFormat("</a>"); strtable.AppendFormat("</td>"); if (cursor < cellsCount) cursor++; else { strtable.AppendFormat("</tr>"); cursor = 1; } } strtable.AppendFormat("</table>"); labtable.Text = strtable.ToString(); } } }
几个辅助方法(如何处理好分页问题,这就关系到cellsCount参数的使用了,cellsCount表示科目数) 业务逻辑(分页)
[u]复制代码[/u] 代码如下:
public System.Data.DataTable GetGradeData(int currentPageIndex, int pageSize, string condition, ref int nRecordCount) { string fieldShow = " UserID,TemplateCode,TemplateItemCode,GradeData,ID,UserName,RealName "; string fieldOrder = " UserName ASC,TemplateItemCode ASC "; string where = condition; if (String.IsNullOrEmpty(where)) { where = "1=1"; } return IBatisDbHelper.GetPagedList("dbo.vw_UserGradeData", "ID", currentPageIndex, pageSize, fieldShow, fieldOrder, where, ref nRecordCount); }
注意事项: 在使用<asp:Literal ID="labtable" runat="server"></asp:Literal>来在页面输出html来显示表单的话,要注意字符串的长度,如果html太长的话,就会出错了,因为Literal的有8000个字符的限制的; 在数据库中对数据进行好排序,这样才能保证数据跟表头是一一对应的; 这里有个前提,那就是查询出来的数据都是包含同等多的记录的,比如同学A和同学B的科目是一样多的;因为不一样多,那这个动态表单就没什么意义了。如果真的有不同,也是可以做出来的,但是会麻烦一点;
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部