留言簿
留言成功,请等待站长审核,谢谢支持!
2010-07-29 09:31 eric
protected void pager_PageChanged(object sender, EventArgs e) { SelectHotel(AspNetPager1.CurrentPageIndex); } AspNetPager1.CurrentPageIndex取出的值都是为1. 这是什么问题.页数是正确的
回复:您好,您的代码太少,另外问题描述得不是很清楚,无法知道具体原因,如果您用默认的Postback分页方式,一般来说出现这个问题是因为没有将数据绑定代码放在if(!IsPostBack)块中导致的。
2010-07-28 14:55 求助:修改源码问题。接上个问题
我再尝试修改源码时,再文件中注意到这么一句话: public int EndRecordIndex { get { return StartRecordIndex - RecordsRemain; } } 整个项目太大了,没有太多的精力去仔细研究,我感觉这行代码改成如下格式,应该可以解决当 RecordCount=0时,aspnetpager无法使用的问题(具体描述见上一个留言,bug提交的那个) public int EndRecordIndex { get { return StartRecordIndex + PageSize; } } 但是我再编译测试时,系统提示: 错误 1 对程序集“C:\Users\Administrator\Desktop\AspNetPager732Src\obj\Release\AspNetPager.dll”签名时加密失败 --“读取密钥文件“c:\Users\Administrator\Desktop\AspNetPager732Src\aspnetpager.snk”时出错 -- 系统找不到指定的文件。 ” Wuqi.Webdiyer.AspNetPager 求助,您能不能给我密钥文件,或者您帮我修改下程序,使他适应存储过程+输出参数的使用方式?
回复:您好,如果需要自己编译的话,密钥文件请用VS生成即可,在项目属性中可看到,很简单,谢谢!
2010-07-28 13:37 7.3.2版本重大Bug报告,新增!
发现7.3.20版本中存在一个bug: 当AspNetPager1.RecordCount的值为空(0)时,AspNetPager1.StartRecordIndex的值为1, AspNetPager1.EndRecordIndex的值为0,一般情况下,这里是没问题的,只要先得到总行数即可。 但是存储过程是可以使用输入输出参数的,再一个存储过程中可以同时返回总行数和查询到的DataTable,此时AspNetPager1.RecordCount的赋值是晚于存储过程的执行的(只有存储过程执行完毕才能得到输出参数,)此时AspNetPager1.EndRecordIndex的值为0,造成了可以得到总行数,但是返回的是空的DataTable。 int Count; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //GetList(); } } private void GetList() { this.Repeater1.DataSource = bll.GetList(model, AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex, ref Count); AspNetPager1.RecordCount = Count; this.Repeater1.DataBind(); } 此代码中使用了输出参数,当执行bll.GetList方法后,AspNetPager1.RecordCount才能获取值,但是因为在执行bll.GetList方法前,(AspNetPager1.RecordCount值为0时)AspNetPager1.EndRecordIndex的值为0,这样就造成了一个现象,可以返回总行数,(AspNetPager1.RecordCount可以正确获取值),但是查询到了空的DataTable。只有点击第2页(或其他页时。) 另:后来发现此时aspnetpager控件不可用。(无法进行翻页,或者说翻页事件不起作用)
回复:您好,这不是bug,而是您不太理解分页控件的工作原理引起的问题。StartRecordIndex和EndRecordIndex都是只读属性,它们的值是分页控件根据RecordCount自动计算出来的,在您的例子中,您在RecordCount还没有具体的值的情况下,就把StartRecordIndex和EndRecordIndex直接传递给了存储过程,这时候这两个参数的值都是默认值,所以无法正确取出分页数据,您应该先取出要分页的记录总数并赋给RecordCount属性后再使用StartRecordIndex和EndRecordIndex属性的值来获取分页数据,这样就不会有问题了。谢谢!
2010-07-25 20:53 lt
请问用标准的URL分页,当记录数比较大的时候超过一万条,而且每条记录内容比较多,发现内存占用和CPU占用都比较偏高,我也不知道是否和我在调试运行有关系
回复:您好,这和您获取数据的方法有关,和分页控件没有任何关系,分页控件和数据没有直接关系。
2010-07-25 14:46 luming
环境:vs2010+ado.net ef 错误:仅对 LINQ to Entities 中已排序的输入支持方法“Skip”。必须在调用“Skip”方法之前调用方法“OrderBy”。 代码:contorller: public ActionResult Index(int? id) { WeekReportDBEntities WR = new WeekReportDBEntities(); var userDB = (from m in WR.WeekReport where m.ReportName == "姓名" select m); PagedList<WeekReport> userDB_view = userDB.ToPagedList(id ?? 1, 10); return View(userDB_view); } view: <%@ Import Namespace="Webdiyer.WebControls.Mvc"%> <%@ Import Namespace="Weekly.Models"%> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Index </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2> 历史周报记录</h2> <table style="width: 100%" id="weektable"> <tr> <th id="TRtime"> 周报时间 </th> <th> 任务内容 </th> <th> 备注 </th> <th> 完成情况 </th> <th> 重新计划 </th> <th> 需工时 </th> </tr> <% foreach (WeekReport item in Model) { %> <tr> <td> <%: String.Format("{0:yyyy年MM月dd日 dddd}", item.ReportTime)%> </td> <td> <%: item.ReportContent %> </td> <td> <%: item.Remark %> </td> <td id="TRComplete"> <%: item.Complete==0? "未开始":(item.Complete ==1? "未完成":"已完成") %> </td> <td id="TRAfresh"> <%: item.Afresh==1?"星期一":(item.Afresh==2?"星期二":(item.Afresh==3?"星期三":(item.Afresh==4?"星期四":(item.Afresh==5?"星期五":(item.Afresh==6?"星期六":(item.Afresh==7?"星期天":"XXX")))))) %> </td> <td id="TRWorkTime"> <%: item.WorkTime +"小时"%> </td> </tr> <% } %> </table>
回复:您好,错误原因中已经说得非常清楚了:您分页获取数据时的linq语句中必须用orderby对数据进行排序,然后才能使用ToPagedList这个扩展方法来生成分页数据,因为ToPagedList方法中用到了Skip这个扩展方法。谢谢!
2010-07-24 17:27 范
您好! 请教下这个问题. AspNetPager1.CurrentPageIndex 出现异常用户代码未处理 System.NullReferenceException 不知道是哪里错了,搞了好久,就是不知道原因.
回复:很抱歉,您没有帖出任何代码,无法判断问题在哪里。
2010-07-24 10:39 luming
微软的webform,发展了一段时间之后又回归简单状态的原始web理念了(虽然asp.net mvc也在其他方面有所改进),linq会不会也重蹈这样的覆辙呢?linq可以修改自动生成的sql语句或者使用存贮过程呢?linq to sql 与ado.net ef或者还有其他的选择,那个与asp.net mvc搭配更合适呢?谢谢!
回复:应该不会,linq微软以后将不再升级和支持,转而将精力投入Entity Framework,我现在做的大部分项目仍然用linq,因为这些项目只用sql server,linq相对EF来说更高效、灵活和简单一些。不过较大的项目我会选择EF,这要考虑到以后的技术发展趋势以及数据迁移等。谢谢!
2010-07-23 23:18 luming
你好,我想问问asp.net mvc中的m层也很重要,在mvc2.0时候引入了强类型的数据显示和验证,很方便。但是使用微软的linq需要学习成本而且不能直接操作sql语句,试过强类型的dataset,但我只实现了强类型显示。想使用IBATIS(改了myBATIS)据说可以写sql和存贮过程,但是网上资料太少,找了一晚上连个环境都配不好,你能给我推荐我选个能实现数据库的实体映射的框架吗?谢谢
回复:您好,我也没用过IBATIS,对这个不了解,不过您说的linq不能直接操作sql语句是错误的,linq可以直接执行任何sql语句,有空可以看看scottgu的博客,从中可以学到不少东西。谢谢!
2010-07-23 01:40 yH
谢谢您 :) 呵呵 天天快乐!
回复:谢谢支持,也祝您快乐!
2010-07-22 16:24 chensirbbk
有没有好的图片上传控件咯!
回复:您好,您可以试试swfupload:http://swfupload.org/