在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");”,却返回到了第一页,并没有将页码传过去?我该怎么在前台将这个页码传递到修改页呢?或者是在后台处理?该怎么写呢?请各位大侠帮忙:)
我这有个查询界面,在这个表里共有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");”,却返回到了第一页,并没有将页码传过去?我该怎么在前台将这个页码传递到修改页呢?或者是在后台处理?该怎么写呢?请各位大侠帮忙:)
<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判断应该显示第几页
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();
}
像这样定义,显示的时候,还是pageindex=<%=pageindex%>
我在后台也定义了pageindex 为public
不知道为什么没有用,
用这种方法没问题的,在find_updata.aspx中用int id=Request.QueryString["id"].来接收就行了
方式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;
<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;
是不是必须换成
<a href="User_Edit.aspx?CustomerID={0}&page=<%=page%>">testtest</a>请各位路过的帮我顶