trouble with DataCell Width and Width of Textbox

  • Thread starter Thread starter Jeff
  • Start date Start date
J

Jeff

hi

asp.net 2.0

Below is some markup I have trouble with. The problem is that the Textbox
doesn't fill the entire DataCell.
I've set width of TextBox to 100%.... The point is that I want the * to be
aligned exactly at the right corner of the TextBox. As it is now there is a
huge space between them, maybe 30px

<asp:Table ID="tblEditUser" runat="server" Width="370" BackColor="Gainsboro"
Name:</asp:TableCell>
<asp:TableCell Width="200" BackColor="GhostWhite"
CssClass="columnRight">
<asp:TextBox ID="txtName" runat="server"
Width="100%"></asp:TextBox>
</asp:TableCell>
<asp:TableCell Width="20" BackColor="LavenderBlush">
<asp:RequiredFieldValidator ID="valRequireName"
runat="server"
ErrorMessage="Name is required"
ControlToValidate="txtName">*</asp:RequiredFieldValidator>
</asp:TableCell>
</asp:TableRow>

Those colors above is just debug info, I want to see where each DataCell is
;)

any suggestions?
 
Here are several things to take note of:

1. Why are you putting the TextBox and RequiredFieldValidator in separate
TableCells?
2. When the ErrorMessage for the RequiredFieldValidator is displayed, the
TableCell it is in will be wider than 20
3. When using the Width and Height properties of the TableCell, you should
put Width="20px", not Width="20"
4. When you are specifying the width and/or height for all cells and/or rows
in a table (server or html), it is a good idea to include
style="table-layout:fixed;"
5. What happens if you add style="text-align:left;" to the TableCell with
the RequiredFieldValidator?

I don't have your entire code, so I can't really do a good test, but see if
any of these suggestions make a difference. Also, just as a personal
preference, I think it is better to use the style="..." attribute rather
than control properties for things that are directly mapped to CSS
properties (such as Width, Height, BackColor, etc.) when specifying them
declaratively so that I can see them all next to each other, and also so
that I know whether they will be rendered as CSS or an attribute of the
rendered HTML tag. Good Luck!
 
Back
Top