2

サイトでバグを見つけましたが、解決策が見つからないようです。コントロールを動的に生成しています。そのうちの 2 つは RadDatePicker と RadTimePicker です。ページでさまざまなイベントが発生すると、コントロールを生成した後、コントロールの可視性を true と false の間で変更しています (基本的に、ページが「編集」モードか表示モードかに基づいて)。ただし、コントロールが表示される最初のインスタンスの後、コントロールはスタイルを失います。以下のスクリーンショットを参照してください。

RadDatePicker および RadTimePicker スタイルの損失の例

誰かに提案やアドバイスがあれば、それは素晴らしいことです。ありがとう

更新:要求されたコードは次のとおりです

これはコントロールを非表示および表示します(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;

これは、オブジェクト定義が与えられてから制御配列を返すメソッド内にあります。コントロール配列の最初の値は「表示」モードのラベルで、2 番目のコントロールは「編集」モードのコントロールです。

次に、この配列は別のメソッドに渡され、テーブルのセル内にコントロールが配置されます。このメソッドは、テーブルの行に配置されてから、テーブル「customProperties」に配置されます。

4

1 に答える 1

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: 私の場合、「MetroTouch」スキンを使用しています。

于 2014-08-11T16:44:36.630 に答える