tags:

views:

261

answers:

6

hi,

I ma getting error like Cannot implicitly convert type 'string' to 'System.Web.UI.WebControls.Unit' in the following code. How to fix this.

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        RadTab tab = new RadTab();
        tab.Text = string.Format("New Page {0}", 1);
        RadTabStrip1.Tabs.Add(tab);

        RadPageView pageView = new RadPageView();
        pageView.Height = "100px";
        RadMultiPage1.PageViews.Add(pageView);

        BuildPageViewContents(pageView, RadTabStrip1.Tabs.Count);
        RadTabStrip1.SelectedIndex = 0;
        RadTabStrip1.DataBind();

    }
}

Here I am getting error. pageView.Height = "100px";

How to fix this?

A: 

Change

pageView.Height = "100px";

to

pageView.Height = new Unit(100);

Height is of type Unit, so you need to assign a value to it that is also of type Unit. To make an object of type Unit you need to call Unit's constructor with new; one of the constructors accepts as a parameter the number of pixels that the Unit is to represent.

AakashM
+1  A: 

Because Height is not of type string but of type UnitSystem.Web.UI.WebControls.Unitenter code here.

You can use the following static methods to convert to Unit:

  • Unit.Pixel(100); // 100 px
  • Unit.Percent(10); // 10 %
  • Unit.Point(100); // 100 pt
  • Unit.Parse("100px"); // 100 px

The Unit structure does not have an explicit or implicit conversion from string, therefore, the error you are observing occurs.

Obalix
A: 

Replace "100px"; with

new System.Web.UI.WebControls.Unit("100px");
rdkleine
A: 

The error message says it all. You need to convert the value to a System.Web.UI.WebControls.Unit in a more specific manner. Luckliy, the Unit type has a constructor with this ability:

pageView.Height = new System.Web.UI.WebControls.Unit("100px");
Fredrik Mörk
A: 

The Height on the control is of type Unit. You want to use

pageView.Height = Unit.Pixel(100);
tvanfosson
A: 

This this MSDN doc on how to use Units. In your case:

pageView.Height = new Unit("100px");
Robert Massa