Link to home
Start Free TrialLog in
Avatar of Eric Greene
Eric GreeneFlag for United States of America

asked on

ASP.NET TabContainer Page Positioning

I know that I can center a <div></div> horizontally on my page by using
style="margin: auto; display: block"

Open in new window

.  However, I have tried this with the ASP.NET TabContainer and I'm coming up empty.
Here is the ASP code:
<asp:TabPanel ID="basic" runat="server" Headertext="Basic Information" CssClass="Tab">
	<ContentTemplate>
		<table width="400" border="0" cellpadding="1" cellspacing="0" style="margin: 0 auto">
			<tr>
				<td colspan="3" style="width: 400px; text-align: left">
					<asp:Label ID="typeLbl" runat="server" Text="Client Type: " /><br />
					<asp:SqlDataSource ID="clientTypes" runat="server" ConnectionString="<%$ ConnectionStrings:CS %>" SelectCommand="SELECT description FROM types WHERE category='Client' AND active='true' ORDER BY description" />
					<asp:DropDownList ID="type" runat="server" Width="200" DataSourceID="clientTypes" DataTextField="description" DataValueField="description" />&nbsp;&nbsp;&nbsp;
					<asp:CheckBox ID="clientActive" runat="server" Checked="true" Text="Active" />
				</td>
			</tr>
			<tr><td colspan="3">&nbsp;</td></tr>
			<tr>
				<td style="width: 150px">
					<asp:Label ID="firstNameLbl" runat="server" Text="First Name: " />
					<asp:TextBox ID="firstName" runat="server" Width="148px" />
				</td>
				<td style="width: 100px; text-align: center">
					<asp:Label ID="miLbl" runat="server" Text="M.I." Width="75" />
					<asp:TextBox ID="mi" runat="server" Width="75" />
				</td>
				<td style="width: 150px">
					<asp:Label ID="lastNameLbl" runat="server" Text="Last Name: " />
					<asp:TextBox ID="lastName" runat="server" Width="148" />
				</td>
			</tr>
			<tr><td colspan="3">&nbsp;</td></tr>
			<tr>
				<td>
					<asp:Label ID="suffixLbl" runat="server" Text="Suffix:" /><br />
					<asp:TextBox ID="suffix" runat="server" Width="50" />
				</td>
				<td colspan="2" style="text-align: right; vertical-align: bottom">
					<asp:Button ID="cancelClient" runat="server" Text="Cancel" Width="90" onclick="cancelClient_Click" />&nbsp;&nbsp;
					<asp:Button ID="addClient" runat="server" Text="Save Client" Width="100" onclick="addClient_Click" />&nbsp;&nbsp;
					</td>
			</tr>
		</table>
		<asp:Label ID="clientResult" runat="server" ForeColor="Green" Font-Bold="true" Visible="false" /><br />&nbsp;<br />
	</ContentTemplate>
</asp:TabPanel>
<asp:TabPanel ID="address" runat="server" HeaderText="Second Tab" CssClass="Tab">
	<ContentTemplate>&nbsp;</ContentTemplate>
</asp:TabPanel>
</asp:TabContainer>

Open in new window


The CSS looks like this (with the help of some code I borrowed):
.Tab .ajax__tab_container .ajax__tab_default
{
    margin: auto;
    display: block;
}

Open in new window

I did not include the other CSS attributes in that stylesheet because they only affect the tabs and tab body.
A screenshot of the result has been uploaded -- with the "Inspect Element" data showingUser generated imageNote the added
style="width: 600px; visibility: visible;">

Open in new window

I did not enter that.  If I don't enter a width, it assumes 100% and doesn't display anything in the "style" entry except visibility: none.
I even tried
.Tab .ajax__tab_container .ajax__tab_default
{
	margin: auto !important;
	display: block !important;
}

Open in new window

and that didn't work.
If I try to inline the style entry, it overrides the other tab styles in my style sheet so that I have to specify EVERYTHING in the inline style.
I really need to center this horizontally on the page for aesthetic purposes.  My customer isn't going to like this thing all the way to the left of the page.
Does anyone have any thoughts?  Shouldn't this work?  Is there a way to override the AJAX style?
ASKER CERTIFIED SOLUTION
Avatar of Mrunal
Mrunal
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Eric Greene

ASKER

That did the trick!  Thank you for the common sense advice.