2014-05-15 72 views
0

我使用踢反弹球CSS/JQuery的(DropKick Link)的风格我的ASP更新不工作:DropDownList的:为什么CSS时,下拉列表中没有刷新页面

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> 
    <ContentTemplate> 
     <asp:DropDownList AutoPostBack="True" OnSelectedIndexChanged="ddlMain_SelectedIndexChanged" ClientIDMode="Static" ID="ddlMain" style="width: 365px;" class="default" runat="server" AppendDataBoundItems="true"> 
     <asp:ListItem Text="BY PHYSICIAN" Value="0" Selected="True" /> 
     <asp:ListItem Text="BY LOCATION" Value="1" /> 
     <asp:ListItem Text="BY SPECIALTY" Value="2" /> 
     </asp:DropDownList> 
     <br /><br /> 
     <asp:DropDownList ClientIDMode="Static" ID="ddlDrillDown" style="width: 365px;" class="default" runat="server" AppendDataBoundItems="true"> 
     </asp:DropDownList> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="ddlMain" /> 
    </Triggers> 
</asp:UpdatePanel> 

当第一次加载页面,我带有这样的:

enter image description here

我使用的UpdatePanel,触发器和ScriptManager控件,所以当用户选择从ddlMainddlDrillDown的选择反映无需重新加载页面的变化。我终于工作,但现在发生的事情是踢反弹球风格的消失,如果我选择ddlMain不同的选项:

开发者控制台显示此页面加载:

<div id="dk_container_ddlMain" class="dk_container dk_theme_default default" aria-hidden="true" tabindex="0" style="margin: 0 auto; display: inline-block;"> 

    <a class="dk_toggle dk_label" style="padding: 10px; color: rgb(43, 71, 125); width: 365px;"> 

     BY PHYSICIAN 

    </a> 
    <div class="dk_options"> 
     <ul class="dk_options_inner" aria-hidden="true" role="main"> 
      <li> 
       <a data-dk-dropdown-value="0" style="padding: 20px; color: #2B477D"> 

        BY PHYSICIAN 

       </a> 
      </li> 
      <li> 
       <a data-dk-dropdown-value="1" style="padding: 20px; color: #2B477D"> 

        BY LOCATION 

       </a> 
      </li> 
      <li> 
       <a data-dk-dropdown-value="2" style="padding: 20px; color: #2B477D"> 

        BY SPECIALTY 

       </a> 
      </li> 
     </ul> 
    </div> 
    <select id="ddlMain" class="default" style="width: 365px;" onchange="javascript:setTimeout('__doPostBack(\'ctl00$FeaturedContent$ddlMain\',\'\')', 0)" name="ctl00$FeaturedContent$ddlMain"> 
     <option value="0" selected="selected"> 

      BY PHYSICIAN 

     </option> 
     <option value="1"> 

      BY LOCATION 

     </option> 
     <option value="2"> 

      BY SPECIALTY 

     </option> 
    </select> 

</div> 

每当我选择另一个选项,开发者控制台显示:

<select id="ddlMain" class="default" style="width: 365px;" onchange="javascript:setTimeout('__doPostBack(\'ctl00$FeaturedContent$ddlMain\',\'\')', 0)" name="ctl00$FeaturedContent$ddlMain"> 

    <option value="0"> 

     BY PHYSICIAN 

    </option> 
    <option value="1" selected="selected"> 

     BY LOCATION 

    </option> 
    <option value="2"> 

     BY SPECIALTY 

    </option> 

</select> 

我在想这是干什么的,l选择最初分配的样式。

有什么办法可以避免不刷新页面的风格?

如果页面刷新每个选择,该样式似乎工作正常。

这个标题是指哪些样式下拉负载在页面上运行脚本:

<script type="text/javascript"> 
    $(document).ready(function(){ 

     $('.default').dropkick(); 
    }); 
</script> 
+1

当您将样式添加到下拉列表中时,您是否还在执行插件的所需JavaScript部分? 尝试将所需的JavaScript封装到您的body底部或内容占位符的'function pageLoad(){// dropkick plugin stuff}'中。 使用pageLoad会导致每次运行Javascript,而不是'$(document).ready(function(){...});' 如果这不起作用,您也可以尝试使用ScriptManager注册JS。 – MightyLampshade

+0

使用将类分配给下拉的脚本更新了我的问题,并且您正确运行了一次。我该如何去修改代码?谢谢。 – SearchForKnowledge

+0

没关系,明白了:) – SearchForKnowledge

回答

1

我用一个UpdatePanel内的jQuery插件时认为,你将不得不在每次回发到重新实例。 因此,在Ajax pageLoad例如,再次初始化插件。

功能页面加载(发件人,参数){// 这里实例化}

编辑:哎呀... MightLampshade我以前职位相同,而我打字。

+0

更新我的问题与脚本是分配到下拉菜单的类,你是正确的它运行一次。我该如何去修改代码?谢谢。 – SearchForKnowledge

+0

没关系,明白了:) – SearchForKnowledge

+0

Sooooooo简单!谢谢。 – SearchForKnowledge

相关问题