Here's my code:
Page1 Aspx
<asp:Panel ID="Panel1" BorderWidth ="0" runat="server" ScrollBars ="Horizontal" CssClass="modalPopup" Width ="1050" Wrap ="true" >
<table style="width: 813px; float: left;" border="0" cellpadding="0" cellspacing="0">
<tr> <td>
<asp:GridView ID="Gridview1" runat="server" OnRowDataBound ="OnRowDataBound" OnRowEditing ="OnRowEditing" RowStyle-Wrap ="true" EmptyDataText="No records has been added." ShowFooter="True" AutoGenerateColumns="False" Width="500px" Font-Size ="9pt" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="SrNo" >
<ItemTemplate>
<%# Container.DataItemIndex + 1 %>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="45%" Wrap="true" />
</asp:TemplateField>
<asp:BoundField DataField="ItemName" HeaderText="Item Name" ItemStyle-Width="120" />
<asp:TemplateField HeaderText = "QUANTITY">
<ItemTemplate>
<asp:Label ID="lblQty" runat="server" Text='<%# Eval("QTYOrdered")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width ="20px" />
<EditItemTemplate>
<asp:Label ID="lblQty" runat="server" Text='<%# Eval("QTYOrdered")%>' Visible ="false" ></asp:Label>
<asp:TextBox ID="txtQty2" runat="server" AutoPostBack ="true" Text='<%# Eval("QTYOrdered")%>' Width ="50px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="20px" Wrap="true" />
</asp:TemplateField>
<asp:TemplateField>
<FooterStyle HorizontalAlign="Right" />
<FooterTemplate>
</FooterTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor ="#dadfff" />
</asp:GridView>
</td></tr>
</table>
</asp:Panel>
<asp:Button ID="Button1" runat="server" PostBackUrl="page2.aspx" Text="Button" />
Page2 Code behind
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If PreviousPage IsNot Nothing AndAlso PreviousPage.IsCrossPagePostBack Then
Dim content As ContentPlaceHolder = DirectCast(Page.PreviousPage.Form.FindControl("cph"), ContentPlaceHolder)
Dim gview As GridView = CType(content.FindControl("Gridview1"), GridView)
Dim pn As Panel = Panel1
pn.Controls.Add(gview)
Form.Controls.Add(pn)
Else
End If
End Sub
Page2 Aspx
<asp:Panel ID="Panel1" BorderWidth ="0" runat="server" ScrollBars ="Horizontal" CssClass="modalPopup" Width ="1050" Wrap ="true" >
<table style="width: 813px; float: left;" border="0" cellpadding="0" cellspacing="0">
<tr> <td>
<asp:GridView ID="Gridview1" runat="server" OnRowDataBound ="OnRowDataBound" OnRowEditing ="OnRowEditing" RowStyle-Wrap ="true" EmptyDataText="No records has been added." ShowFooter="True" AutoGenerateColumns="False" Width="500px" Font-Size ="9pt" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="SrNo" >
<ItemTemplate>
<%# Container.DataItemIndex + 1 %>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="45%" Wrap="true" />
</asp:TemplateField>
<asp:BoundField DataField="ItemName" HeaderText="Item Name" ItemStyle-Width="120" />
<asp:TemplateField HeaderText = "QUANTITY">
<ItemTemplate>
<asp:Label ID="lblQty" runat="server" Text='<%# Eval("QTYOrdered")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width ="20px" />
<EditItemTemplate>
<asp:Label ID="lblQty" runat="server" Text='<%# Eval("QTYOrdered")%>' Visible ="false" ></asp:Label>
<asp:TextBox ID="txtQty2" runat="server" AutoPostBack ="true" Text='<%# Eval("QTYOrdered")%>' Width ="50px"></asp:TextBox>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="20px" Wrap="true" />
</asp:TemplateField>
<asp:TemplateField>
<FooterStyle HorizontalAlign="Right" />
<FooterTemplate>
</FooterTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor ="#dadfff" />
</asp:GridView>
</td></tr>
</table>
</asp:Panel>
With the above code i will like Gridview1 data in page1 to sit or replace Gridview1 in page2 Panel1 without Panel1 in page2 moving from its original position.