RadbackPicker和RadTimePicker在回发后丢失了样式

时间:2012-06-19 14:33:05

标签: c# asp.net telerik raddatepicker

我在我的网站上发现了一个错误,似乎无法找到解决方案。我正在动态生成控件,其中两个是RadDatePicker和RadTimePicker。当页面上出现不同的事件时,我会在生成控件后将控件的可见性更改为true和false(主要基于页面处于“编辑”模式还是“查看”模式)。但是,在控件可见的第一个实例之后,控件将丢失其样式。请参阅下面的屏幕截图:

RadDatePicker and RadTimePicker style loss example

如果有人有任何建议或意见,那就太好了。感谢

更新:以下是要求的代码

隐藏并显示控件(只需更改true / false)

for (int i = 0; i < customProperties.Rows.Count; i++)
{
    customProperties.FindControl("CustomControl" + (i + 1).ToString()).Visible = false;
    customProperties.FindControl("lblCustomControl" + (i + 1).ToString()).Visible = true;
    Type aType = customProperties.FindControl("CustomControl" + (i + 1).ToString()).GetType();
    if (aType.Name == "RadBinaryImage")
    customProperties.FindControl("CustomControl" + (i + 1).ToString() + "_btn").Visible = false;
}

所以基本上它在htmltable(customProperties)中搜索控件并更改可见性

这是生成控件的地方:

case DynamicFieldTypeEnum.Date:
    RadDatePicker dp = new RadDatePicker();
    dp = currentValues as RadDatePicker;
    if (dp.SelectedDate == null)
        customProperty.Text = "Not Specified";
    else
        customProperty.Text = dp.SelectedDate.Value.ToString(dp.DateInput.DateFormat);
    dp.ID = "CustomControl" + (position + 1).ToString();

    newControls[0] = customProperty;
    newControls[1] = dp;
    break;
case DynamicFieldTypeEnum.Time:
    RadTimePicker tp = new RadTimePicker();
    tp = currentValues as RadTimePicker;
    if (tp.SelectedDate == null)
        customProperty.Text = "Not Specified";
    else
        customProperty.Text = tp.SelectedDate.Value.ToString(tp.DateInput.DateFormat);
    tp.ID = "CustomControl" + (position + 1).ToString();

    newControls[0] = customProperty;
    newControls[1] = tp;
    break;

这是在给定对象定义然后返回控件数组的方法中。控制数组中的第一个值是“查看”模式的标签,第二个控件是“编辑”模式的控件。

然后将此数组传递给另一个方法,该方法将控件放在表格单元格中,该表格单元格放在表格行中,然后放在表格“customProperties”

1 个答案:

答案 0 :(得分:0)

我已经遇到过这种问题。

作为Telerik支持的建议,我在发现问题的页面中添加了此代码。

    <telerik:RadStyleSheetManager ID="RadCssManager" runat="server">
        <StyleSheets>
            <telerik:StyleSheetReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Skins.RadDatePicker.css" />
            <telerik:StyleSheetReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Skins.MetroTouch.RadDatePicker.MetroTouch.css" />
        </StyleSheets>
    </telerik:RadStyleSheetManager>

Ps:在我的情况下,我使用&#34; MetroTouch&#34;皮肤。