2010-05-26 156 views
5

我马上得到像以下代码中的类型'字符串'不能隐式转换为'System.Web.UI.WebControls.Unit'的错误。如何解决这个问题。不能隐式地将类型'字符串'转换为'System.Web.UI.WebControls.Unit'

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

    } 
} 

这里我得到错误。 pageView.Height =“100px”;

如何解决这个问题?

回答

3

错误消息说,这一切。您需要以更具体的方式将值转换为System.Web.UI.WebControls.Unit。 Luckliy,所述Unit类型具有与此能力的constructor

pageView.Height = new System.Web.UI.WebControls.Unit("100px"); 
0

变化

pageView.Height = "100px"; 

pageView.Height = new Unit(100); 

HeightUnit类型的,所以你需要分配一个值给它,这也是Unit类型。要创建Unit类型的对象,您需要拨打Unit构造函数new;其中一个构造函数接受Unit要表示的像素数作为参数。

5

因为Height不是类型字符串,而是类型为UnitSystem.Web.UI.WebControls.Unit enter code here

您可以使用下面的静态方法来转换成单位:

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

单元结构没有明确的或从字符串中的隐式转换,theref矿石,你正在观察的错误发生。

0

更换"100px";

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

在控制的高度为Unit类型。你想使用

pageView.Height = Unit.Pixel(100); 
0

这个this MSDN doc如何使用单位。在你的情况下:

pageView.Height = new Unit("100px"); 
相关问题