asp.net column gridview widths

satya - Friday, May 18, 2007 5:45:09 PM

Setting widths on server side


public class ColumnHeaderTemplate : ITemplate
{
    private string columnname;
    private string displayname;
    public ColumnHeaderTemplate(string inColumnname, string inDisplayName)
    {
        displayname = inDisplayName;
        columnname = inColumnname;
    }
    public void InstantiateIn(Control container)
    {
        Label test = new Label();
        test.Text = this.displayname;

        LiteralControl lc = new LiteralControl("<p/>");
        TextBox tb = new TextBox();
        tb.Style.Value = "display:block;";
        tb.ID = this.columnname;
        tb.Width = Unit.Percentage(100);

        container.Controls.Add(test);
        container.Controls.Add(tb);
    }
}//eof-class

satya - Friday, May 18, 2007 5:47:29 PM

Class reference for Unit

Class reference for Unit

satya - Friday, May 18, 2007 5:49:14 PM

you can find unit methods here

you can find unit methods here

satya - Friday, May 18, 2007 5:50:23 PM

in brief

Percentage: Creates a Unit of type Percentage from the specified double-precision floating-point number.

Pixel: Creates a Unit of type Pixel from the specified 32-bit signed integer.

Point: Creates a Unit of type Point from the specified 32-bit signed integer.

satya - Friday, May 18, 2007 5:52:57 PM

A template field example


<asp:TemplateField HeaderText="Team Name" ItemStyle-Width="10%" >
   <ItemTemplate>
   <asp:Label ID="Label1" 
         Text='<%#getValue(Container.DataItem,"TEAM_NM") %>' 
      runat="server"/>
   </ItemTemplate>
</asp:TemplateField>

satya - Friday, May 18, 2007 5:54:56 PM

The absolute textboxes can mess up the percentage widths

The absolute textboxes can mess up the percentage widths. I used a percentage width for the textbox so that it will take a percentage of the table column it is sitting in. with out this I saw the table not honoring the widths that are in the aspx page.