2012-06-19 5 views
2

내 사이트에서 버그가 발견되어 해결책을 찾지 못하는 것 같습니다. 나는 동적으로 컨트롤을 생성하는데, 이중 두 가지는 RadDatePicker와 RadTimePicker입니다. 페이지에서 다른 이벤트가 발생하면 컨트롤을 생성 한 후 true 및 false 사이에서 컨트롤의 가시성을 변경합니다 (기본적으로 페이지가 '편집'모드인지 뷰 모드인지 여부에 따라 달라집니다). 그러나 컨트롤이 표시되는 첫 번째 인스턴스 이후에 컨트롤의 스타일이 손실됩니다. 아래의 스크린 샷을 참조하십시오 : 사람이 어떤 제안이나 조언을 갖고RadDatePicker 및 RadTimePicker가 포스트 백 이후에 스타일을 잃습니다.

RadDatePicker and RadTimePicker style loss example

경우, 즉 큰 것. 감사합니다

업데이트 : 여기에 컨트롤 (/ 단지 진정한 변화 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"나는 이미 이런 종류의 문제를 경험 한

+0

첫째, 포스트 백이 발생합니까? 둘째, 이러한 컨트롤은 업데이트 패널과 같은 무언가 안에 있습니까? – KreepN

+0

예 편집 모드를 "취소"할 때 다시 게시가 발생합니다. 정보를 저장하지 않습니다. 이 버그가 발생했을 때입니다. 컨트롤은 일반 html 테이블 내에 배치됩니다. – Eric

+0

한 가지 더 바보 같은 질문이 있지만 페이지의 아무 곳에 나 RadStyleSheetManager 컨트롤이 있습니까? – KreepN

답변

0

에 배치 된 테이블 셀 내에서 컨트롤을 배치 다른 방법으로 전달됩니다.

Telerik Support의 제안으로이 문제점을 발견 한 페이지에이 코드를 추가했습니다.

<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"스킨을 사용하고 있습니다.

관련 문제