Put the grid view in one Div and set the div's class parameters as below
.grid_wrapper
{
float:left;
width:80%;(put this as per your page settings and designs)
height:200px;(put this as per your page settings and designs)
overflow:scroll;
display:block;
}
<div class="grid_wrapper">
<asp:GridView ID="ParentGridView" runat="server" DataSourceID="ParentSqlDataSource"
AutoGenerateColumns="False" DataKeyNames="pub_id" OnRowEditing="ParentGridView_OnRowEditing">
<Columns>
<asp:TemplateField HeaderText="PublisherID">
<ItemTemplate>
<asp:Label ID="pubid_lbl" runat="Server" Text='<%# Eval("pub_id") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="name_lbl" runat="Server" Text='<%# Eval("pub_name") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="City">
<ItemTemplate>
<asp:Label ID="city_lbl" runat="Server" Text='<%# Eval("city") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="View">
<ItemTemplate>
<asp:Button ID="ViewChild_Button" runat="server" Text="+" CommandName="Edit" />
</ItemTemplate>
<EditItemTemplate>
<asp:Button ID="CancelChild_Button" runat="server" Text="-" CommandName="Cancel" />
<asp:GridView ID="ChildGridView" runat="server" AllowPaging="true" PageSize="4" AutoGenerateColumns="false"
DataSourceID="ChildSqlDataSource" OnRowEditing="ChildGridView_OnRowEditing">
<Columns>
</Columns>
</asp:GridView>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>