2010-08-19 2 views
1

업데이트 패널 컨트롤에서 양식 요소 모양 및 느낌 업데이트 중 문제가 있습니다.
나는 Uniform JQuery Plugin을 사용하여 드롭 다운과 같은 폼 컨트롤을 형성합니다. 그것은 ASP.net 양식에서 아주 잘 작동하지만 사용자가 dropDownList Item을 선택할 때 CheckboxList Items를 생성하기 위해 업데이트 패널을 사용했습니다.
아래 그림은 형태의 Look & Feel 표시 :
alt textUpdate Panel 및 JQuery Form Look & Feel Plugin 문제 내부의 컨트롤 !!! 도움말

을하지만 난 UpdatePanel 템플릿을 업데이트 목록에서 범주를 선택하고 체크 박스를 업데이트하면 균일 한 스타일은 업데이트 패널 내부에있는 컨트롤에서 제거 할 때 :
alt text


  <script type="text/javascript"> 
       $(function() { 
        $("input, textarea, select, button").uniform(); 
       }); 
      </script> 

및 업데이트 패널 마크 업 :

나는 균일 한 형태로 위의 함수를 호출

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <p> 
       انتخاب دسته:&nbsp;<myCtrl:CategoryDDL AutoPostback="True" EmptyItemText="همه‌ی دسته‌ها" 
        ID="CategoryDDL" OnSelectedIndexChanged="CategoryDDL_SelectedIndexChanged" runat="server" 
        SelectedCategoryId="0" /> 
      </p> 
      <p> 
       برند محصولات<br /> 
       <asp:CheckBoxList ID="CheckBoxListBrands" runat="server"> 
       </asp:CheckBoxList> 
      </p> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="CategoryDDL" /> 
     </Triggers> 
    </asp:UpdatePanel> 



알고이 사람은 날이 버그를 해결하는 데 도움이 될 수 있습니다 ??? 업데이트 패널 컨트롤 스타일을 제거하지 못하게 할 수있는 방법이 있습니까?

답변

1

당신은 (요소가 완전히 교체) 스타일을 제거에서 계속 할 수는 없지만 코드에서이 작업을 한 번만 실행하여 다시 적용 할 수 있습니다

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function() { 
    $("#updatePanelDiv :input").uniform(); 
}); 

는 이것이하는 일은 첨부입니다 UpdatePanel의 endRequest event이 실행될 때마다 플러그인을 다시 실행하는 이벤트 처리기 (새 콘텐츠/요소가 제공 될 때마다).

의견에서 언급 한대로 래퍼에 UpdatePanel을 래핑하면 이 영역으로 제한됩니다.

+0

당신에게 Mr.Craver 감사합니다! 코드가 잘 작동합니다. 하지만 코드에는 약간의 버그가 있습니다. 업데이트 패널이 내용을 업데이트 할 때마다 내 양식의 다른 모든 입력이 두 배가됩니다. 이를 방지하기 위해 div 태그에 모든 Panel 컨트롤을 업데이트하고 다음과 같이 selector를 수정했습니다. ($ ("# update_panel_container : input"). uniform();) 다른 사람들의 사용에 대한 답변을 업데이트하십시오. – mahdiahmadirad

+0

@mahdiahmadirad - 완료 :) –

0

변화

그 것이다
function pageLoad(){ 
$("input, textarea, select, button").uniform(); 
} 

이 방법

$(function() { 
$("input, textarea, select, button").uniform(); 
}); 

..