asp.net 2.0 gridview 分页 跳转 警告窗口 注册事件

参考页面:
http://odetocode.com/Blogs/scott/archive/2006/03/21/3153.aspx
http://odetocode.com/Blogs/scott/archive/2006/03/20/3145.aspx
http://recordsome.blogsome.com/2006/05/30 

问题描述: EnableEventValidation="true"
  
Event validation is a feature designed to help prevent injection attacks (of course it can't prevent attacks all by itself).
   如果我们往服务器端生成的代码加入了客户端生成的数据,如果参考页面中提出的,下拉菜单的问题。
这样会提示出错信息
  warn.GIF
我是在做GridView的分页时,出现的问题。我把代码贴出来,大家看看。
< asp:GridView  ID ="gvDB"  runat ="server"  CssSelectorClass ="PrettyGridView"  SkinID ="GridView"
        OnPageIndexChanging
="gvDB_PageIndexChanging" >   //这里用到一个CSS适配器
        
< EmptyDataTemplate >
            
< div  align ="center" >
                没有相关资源dot.gif
</ div >
        
</ EmptyDataTemplate >
        
< Columns >
            
< asp:TemplateField  HeaderText ="状态"  ItemStyle-Width ="35px" >
                
< ItemTemplate >
                    
<% # CheckUserRight( Eval ( " RS_ID " ).ToString()) %>
                
</ ItemTemplate >
                
< ItemStyle  BorderColor ="#BFCCE1"  HorizontalAlign ="Center"  Width ="30px"   />
            
</ asp:TemplateField >
            
< asp:TemplateField  HeaderText ="资源名称" >
                
< ItemTemplate >
                    
< target ="_blank"  href ="SingleSearch.aspx?rsid=<%# Eval(" RS_ID")% > " title=" <% #DataBinder.Eval(Container.DataItem,  " RS_Intro " ) %> ">
                        
<% #DataBinder.Eval(Container.DataItem,  " RS_Name " ) %> </ a >
                
</ ItemTemplate >
                
< ItemStyle  BorderColor ="#BFCCE1"   />
            
</ asp:TemplateField >
        
</ Columns >
    
</ asp:GridView >

这是.SKIN文件下的设置
< asp:GridView  SkinID ="GridView"  Runat ="server"  
    CellPadding
="3"  
    GridLines
="None"
    BorderStyle
="solid"  
    BorderWidth
="2px"  
    BorderColor
="#465239"
    PagerSettings-Mode
="NextPreviousFirstLast"
    AllowPaging
="True"  
    PageSize
="12"  
    Width
="100%"
    AutoGenerateColumns
="False" >
  
< PagerSettings  PreviousPageImageUrl ="~/images/resBrowser/button_previous.gif"  NextPageImageUrl ="~/images/resBrowser/button_next.gif"
                        FirstPageImageUrl
="~/images/resBrowser/button_first.gif"  LastPageImageUrl ="~/images/resBrowser/button_last.gif"
                        FirstPageText
="第一页"  LastPageText ="最后一页"  Mode ="NextPreviousFirstLast"
                        NextPageText
="下一页"  PreviousPageText ="前一页"   />
    
< PagerStyle  HorizontalAlign ="Right"  BackColor ="#F9FAFD"  ForeColor ="#0099FF"  Height ="10px"
        BorderStyle
="Solid"  BorderWidth ="1px"  BorderColor ="#BFCEE1"   />
</ asp:GridView >

这是加到GridView后面的分页代码
< div  style ="text-align: center; font-size:small;" >  
<%    if  (lblcurPage.Text ! =   " 1 "
    {  
%>  
< input  type ="image"  src ="../images/resBrowser/button_first.gif"  alt ="首页"  
   onclick
="javascript:__doPostBack('ctl00$MainContent$gvDB','Page$First')"    />
< input  type ="image"  src ="../images/resBrowser/button_previous.gif"  alt ="前一页"
onclick
="javascript:__doPostBack('ctl00$MainContent$gvDB','Page$Prev')"    />  
<%  }  %>  
< asp:Label  ID ="lblcurPage"  runat ="server"  Text ='' ></ asp:Label > 页/共 < asp:Label 
ID ="lblPageCount"  runat ="server"  Text ='' ></ asp:Label >
<%    if  (lblcurPage.Text ! =  lblPageCount.Text) 
    {                   
%>  
< input  type ="image"  src ="../images/resBrowser/button_next.gif"  alt ="后一页"
  onclick
="javascript:__doPostBack('ctl00$MainContent$gvDB','Page$Next')"    />
< input  type ="image"  src ="../images/resBrowser/button_last.gif"  alt ="尾页"  
  onclick
="javascript:__doPostBack('ctl00$MainContent$gvDB','Page$Last')"    />
<%  }  %>   
跳转到第
< asp:textbox  id ="txtNewPageIndex"  runat ="server"  width ="20px"  text ='<%=gvDB.PageIndex+1  % > ' />页 
< href ="#"  onclick ="GoToPage()" > 跳转 </ a >
 
</ div >
//javascript代码
function GoToPage()
{
    var curPage=$get('ctl00_MainContent_lblcurPage').innerHTML;
    var newPage=$get('ctl00_MainContent_txtNewPageIndex').value;
   if(curPage==newPage)
   {
       return;
   }
   __doPostBack('ctl00$MainContent$gvDB','Page$First');
}  

解决方案:
在.CS页面中加了一个事件注册处理:
     protected override void Render(HtmlTextWriter writer)
        {
            ClientScript.RegisterForEventValidation(gvDB.UniqueID, "Page$First");
            base.Render(writer);
        }
关于分页的做法,网上有很多做法。
我的任务是在原来的基础上加上分页的功能,这次改动不算太多。
欢迎大家讨论。

转载于:https://www.cnblogs.com/ajaxleoxu/archive/2007/06/25/794426.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值