5

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?

6 Answers 6

5

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.

Sign up to request clarification or add additional context in comments.

Comments

3

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");

Comments

0

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.

Comments

0

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

pageView.Height = Unit.Pixel(100);

Comments

0

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

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

Comments

0

Replace "100px"; with

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.