在Repeater控件中如何向另一个页传递参数? 
我这有个查询界面,在这个表里共有6条记录,共分2页显示,在表的最后一列有个“修改”的超链接,用来连接到修改页面。 
 学号 姓名 性别 年龄 修改  
 001  张三  男  45   修改   
 002  李四  男  76   修改   
 003  王五  女  43   修改      共6条信息 [当前第 1页/共 2页] 到第  1页  “提交”按钮 例如:当我显示第二页的时候,我想修改“005”号记录,如下表所示,点击链接“修改”,就转到了修改页面,修改完之后,我还想回到这个查询界面的第二页,该怎么写这个返回参数呢? 学号 姓名 性别 年龄 修改  
 004  赵六  男  35   修改   
 005  王刚  男  26   修改   
 006  张静  女  13   修改      共6条信息 [当前第 2页/共 2页] 到第  2页  “提交”按钮 我在查询页的aspx文件里用的是HyperLink控件。 
<asp:Repeater id="MyRepeater" runat="server"> 
....... 
<ItemTemplate> 
...... 
<asp:HyperLink ID="hyperlink1" NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "id", "find_update.aspx?id={0}") %>' Text="修改" Runat="server" />//这是在前台传递的参数 
......... 
</ItemTemplate> 
...... 
</asp:Repeater>  我在修改页(find_update.aspx.cs)里的CS文件用的返回是:“Response.Redirect("find.aspx");”,却返回到了第一页,并没有将页码传过去?我该怎么在前台将这个页码传递到修改页呢?或者是在后台处理?该怎么写呢?请各位大侠帮忙:)

解决方案 »

  1.   

    '<%# "find_update.aspx?id=" + DataBinder.Eval(Container.DataItem, "id").ToString() %>'
      

  2.   

    NavigateUrl='<%# "find_update.aspx?id=" + DataBinder.Eval(Container.DataItem, "id").ToString() %>'
      

  3.   

    1、对“修改”用
    <A href='find_update.aspx?id=<%# DataBinder.Eval(Container.DataItem, "id")%>&pageindex=<%=pageindex%>'></A>来传递2个参数。
    2、pageindex是在cs后台中定义的一个变量,值就是Repeater当前页码。
    3、在find_update.aspx页面的Response.Redirect("find.aspx");把相应的pageindex值传回来
    4、然后Repeater判断应该显示第几页
      

  4.   

    一个repeater分页绑定,看一下就知道了.page传页面.
    private void Data()
    {
    Database db=new Database();
    DataSet ds=db.ReturnDataSet_ExcuteSQL("news","select * from news order by datetimes desc");
    //this.re_new.DataSource=ds;
    //this.re_new.DataBind(); PagedDataSource pds=new PagedDataSource();
    pds.DataSource=ds.Tables[0].DefaultView;
    pds.AllowPaging=true;
    //pagesize=3;
    DataCounts=pds.DataSourceCount;
    pagecounts=DataCounts%pagesize==0 ? DataCounts/pagesize : DataCounts/pagesize+1;
    pds.PageSize=pagesize;
    int CurrentPage;
    if(Request.QueryString["Page"]!=null)
    CurrentPage=Convert.ToInt32(Request.QueryString["Page"]);
    else
    CurrentPage=1;
    lb.Text=CurrentPage.ToString();
    pds.CurrentPageIndex=CurrentPage-1;
    if(!pds.IsFirstPage)
    {

    lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToInt32(CurrentPage-1);
    lnkFirst.NavigateUrl=Request.CurrentExecutionFilePath+"?Page=1";
    }
    if(!pds.IsLastPage)
    {
    lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+Convert.ToInt32(CurrentPage+1);
    lnkLast.NavigateUrl=Request.CurrentExecutionFilePath+"?Page="+pds.PageCount;
    }
    this.re_new.DataSource=pds;
    this.re_new.DataBind();
    }
    private void Data(int type)
    {
    Database db=new Database();
    DataSet ds=db.ReturnDataSet_ExcuteSQL("news","select * from news where typeid="+type);
    //this.re_new.DataSource=ds;
    //this.re_new.DataBind(); PagedDataSource pds=new PagedDataSource();
    pds.DataSource=ds.Tables[0].DefaultView;
    pds.AllowPaging=true;
    //pagesize=3;
    DataCounts=pds.DataSourceCount;
    pagecounts=DataCounts%pagesize==0 ? DataCounts/pagesize : DataCounts/pagesize+1;
    pds.PageSize=pagesize; int CurrentPage;
    if(Request.QueryString["Page"]!=null)
    CurrentPage=Convert.ToInt32(Request.QueryString["Page"]);
    else
    CurrentPage=1;
    lb.Text=CurrentPage.ToString();
    pds.CurrentPageIndex=CurrentPage-1;
    if(!pds.IsFirstPage)
    {

    lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath+"?type="+Request.QueryString["type"]+"&Page="+Convert.ToInt32(CurrentPage-1);
    lnkFirst.NavigateUrl=Request.CurrentExecutionFilePath+"?type="+Request.QueryString["type"]+"&Page=1";
    }
    if(!pds.IsLastPage)
    {
    lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+"?type="+Request.QueryString["type"]+"&Page="+Convert.ToInt32(CurrentPage+1);
    lnkLast.NavigateUrl=Request.CurrentExecutionFilePath+"?type="+Request.QueryString["type"]+"&Page="+pds.PageCount;
    }
    this.re_new.DataSource=pds;
    this.re_new.DataBind();
    }
      

  5.   

    上面放了两个,一个就行了,传值过来时把参数page回传就行.
      

  6.   

    .......&pageindex=<%=pageindex%>
    像这样定义,显示的时候,还是pageindex=<%=pageindex%>
    我在后台也定义了pageindex 为public 
    不知道为什么没有用,
      

  7.   

    你直接修改完后response.redirect("find.aspx?pageindex="+pageindex);
      

  8.   

    我用的是AspNetPager.dll的分页
      

  9.   

    <A href='find_update.aspx?id=<%# DataBinder.Eval(Container.DataItem, "id")%>&pageindex=<%=pageindex%>'></A>没问题的,我试过的如果不行的话,把你的代码帖出来
      

  10.   

    '<%# "find_update.aspx?id=" + DataBinder.Eval(Container.DataItem, "id").ToString() %>'
    用这种方法没问题的,在find_updata.aspx中用int id=Request.QueryString["id"].来接收就行了
      

  11.   

    ASP.NET页面之间传递值个人总结 
    方式1: 
         
    在接收页 的html代码里加上一行: <%@ Reference Page = "WebForm1.aspx" %>             
          
        WebForm1 fp=(WebForm1)Context.Handler; 
        this.TextBox1.Text=fp.name;   //name 是第一页的public变量 
      
      
    Context  提供对整个当前上下文(包括请求对象)的访问。您可以使用此类共享页之间的信息。  
      
    方式2:GET方式 
        在发送页 
          public int sum=0; 
      
               int i =int.Parse(this.TextBox1.Text)*2; 
      
               Server.Transfer("WebForm2.aspx?sum="+i); 
      
        接收页 
            this.TextBox1.Text=Request["sum"].ToString(); 
        or  this.TextBox1.Text=Request.Params["sum"].ToString(); 
            this.TextBox1.Text=Request.QueryString["sum"]; 
      
      
    方法3:全局变量 
      
       发送页: 
           Application["sum"]=this.TextBox1.Text; 
           Server.Transfer("WebForm2.aspx"); 
      
       接收页: 
           this.TextBox1.Text=(string)Application["sum"]; 
      
    Application实质上是整个虚拟目录中所有文件的集合,如果想在整个应用范围内使用某个变量值,Application对象将是最佳的选择 
      
      
      
    方法4: 
      
     发送页: 
        1.定义静态变量:  public static string str=""; 
        2. str=this.TextBox1.Text; 
           Server.Transfer("webform2.aspx"); 
     接收页: 
        1.引入第一页的命名空间:using WebApplication1; 
        2  this.TextBox1.Text=WebForm1.str; 
      

  12.   

    代码贴了过来,请兄弟门看看
    <asp:datagrid id="MyList" runat="server" BorderColor="black" GridLines="Vertical" cellpadding="4"
    cellspacing="0" Font-Name="Verdana" Font-Size="8pt" ShowFooter="true" HeaderStyle-CssClass="CartListHead"
    FooterStyle-CssClass="cartlistfooter" ItemStyle-CssClass="CartListItem" AlternatingItemStyle-CssClass="CartListItemAlt"
    AutoGenerateColumns="false" width="90%">
    <Columns>
    <asp:BoundColumn HeaderText="Customer ID" DataField="CustomerID" />
    <asp:BoundColumn HeaderText="Customer Name" DataField="CustomerName" />
    <asp:BoundColumn HeaderText="Customer Sex" DataField="CustomerSex" DataFormatString="{0:c}" />
    <asp:BoundColumn HeaderText="Customer Email" DataField="CustomerEmail" DataFormatString="{0:d}" />
    <asp:HyperLinkColumn HeaderText="修改" DataNavigateUrlField="CustomerID" Text="修改" DataNavigateUrlFormatString="User_Edit.aspx?CustomerID={0}&page=<%=page%>"></asp:HyperLinkColumn>
    <asp:HyperLinkColumn HeaderText="删除" DataNavigateUrlField="CustomerID" Text="删除" DataNavigateUrlFormatString="User_Delete.aspx?CustomerID={0}"></asp:HyperLinkColumn>
    </Columns>
    </asp:datagrid>.cs
    public int page;
    page=e.NewPageIndex;
      

  13.   

    asp:HyperLinkColumn HeaderText="修改" DataNavigateUrlField="CustomerID" Text="修改" DataNavigateUrlFormatString="User_Edit.aspx?CustomerID={0}&page=<%=page%>"></asp:HyperLinkColumn>
    是不是必须换成
    <a href="User_Edit.aspx?CustomerID={0}&page=<%=page%>">testtest</a>请各位路过的帮我顶
      

  14.   

    用<A href='find_update.aspx?id=<%# DataBinder.Eval(Container.DataItem, "id")%>&pageindex=<%=pageindex%>'></A>来做