问题描述:updatepanel中有若干下拉选框,页面初次加载时样式美化正常,当updatepanel局部刷新后,下拉选框的样式就变为缺省的html样式了。当前进展:按照下文,尝试局部刷新后重新更新样式,但未能达到效果?!
解决在UpdatePanel内jquery easyui效果失效的方法
http://www.cnblogs.com/topdog/archive/2010/04/11/1709413.html代码如下:
function load() {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
function EndRequestHandler() {
    aa();
}
function aa() {
    //alert(0);
    $(function(){
        $('form').jqTransform({imgPath:'public/images/'});
    });
    //alert(1);
}当前效果:注释开启时,可以看到alert(0);alert(1);,但就是updatepanel中下拉选框的样式就是没有变化?!请有经验的兄弟帮忙指点一下,只要能可行,立刻结贴送分!

解决方案 »

  1.   

    $(function(){
            $('form').jqTransform({imgPath:'public/images/'});
        });
    写错了吧 这是给页面load事件注册方法
    改成$('form').jqTransform({imgPath:'public/images/'});
      

  2.   

    因  源码中存在
        if(selfForm.hasClass('jqtransformdone')) {return;}
        selfForm.addClass('jqtransformdone');
        该语句判断是否已经加载过样式   所以应改为
            function load() {
                Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
            }
            
            function aa()
            {                    
                if( $('select', $('#UpdatePanel1')).jqTransSelect().length > 0 ){jqTransformAddDocumentListener();}            
            }        
                   
            function EndRequestHandler() 
            {
                aa();
            }
      

  3.   


    应为 : $('select', $('#updatepaneId')).jqTransSelect();
      

  4.   

    <script type="text/javascript" language="javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    function BeginRequestHandler(sender, args) 
    {
    var elem = args.get_postBackElement();
    ActivateBegin();
    }
    function EndRequestHandler(sender, args) 
    {
    ActivateEnd();
    }
    function ActivateBegin(){}
    function ActivateEnd() 
    {
    var tes=document.getElementById('MultiSelectDropDown1_tbm');
    tes.className='jqTransformSelectWrappernew';
    }
    </script>
    ....
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <asp:gridview .....>
    <columns>
    <asp:DropDownList ID="ddlState" runat="server" AutoPostBack="True" onselectedindexchanged="ddlState_SelectedIndexChanged"> </asp:DropDownList>
    <asp:UpdatePanel ID="UpdatePanel2" runat="server" >
    <ContentTemplate>
    <div id="test">
    <asp:HiddenField ID="HiddenField2" runat="server" />
    <ddms:multiselectdropdown id="MultiSelectDropDown1" AutoPostBack ="true" runat="server"></ddms:multiselectdropdown>
    </div>
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="ddlState" EventName="SelectedIndexChanged" />
    </Triggers>
    </asp:UpdatePanel>
    </columns>
    </asp:gridview>
    .....
      

  5.   

    https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=103134http://stackoverflow.com/questions/1732164/losing-css-class-added-through-jquery-on-updatepanel-partial-postbackhttp://www.eggheadcafe.com/aspnet/how-to/1109381/updatepanel-css-styleshee.aspx