A.aspx页面里有textbox和GridView(GridVIew里面有TextBox选项),B.aspx页面有Label来显示A页面TextBox的数据,GridView显示TextBox(GridView)里面的数据,点击按钮Button后,怎么把A.aspx的所有数据传到B.aspx页面来显示?
可以通过PreviousPage和FindControl来达到你的要求。现以查找TextBox为例。
A页面代码:
<form id="form1" runat="server">
<asp:TextBox ID="TB_1" runat="server"></asp:TextBox>
<asp:Button ID="Btn" runat="server" Text="Button" PostBackUrl="B.aspx"/>
</form>
B页面代码:
<form id="form1" runat="server">
<asp:Label ID="Lb_1" runat="server" Text="Label"></asp:Label>
</form>
B页面的后台代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//通过PreviousPage获取到A页面
Page p = this.Page.PreviousPage;
//通过FindControl查找TB_1控件
TextBox tb = p.FindControl("TB_1") as TextBox;
Lb_1.Text = tb.Text;
//通过FindControl查找GridView,再通过FindControl找到其中的TextBox
//代码略。。。
}
}
楼主试试看。
谢谢Localhost,用TextBox是可以的,GridView(含有TextBox)是怎么从A.aspx传到B.aspx的呢
@lqps:
现在不需要传递数据,我们是通过PreviousPage获取前一个页面。
通过在该页面上使用FindControl来获取获取该页面的控件,进而查找到控件的值。
通过FindControl("TB_1")可以查找到ID为TB_1的TextBox,那么通过FindControl("GridView1")就可以查找到GridView1控件,再查找通过GridView_1.FindControl("GridView1_TextBox1")控件即可。此时可能和GridView的Mode状态还有关系。
@Localhost: 谢谢了.....
最简单的就是使用session,再就是Server.transfer也行
一般参数不多的话都是直接url参数传递就行了,传的时候用url编码一下
复杂结构也可以session和cache保存