2016-08-03 17 views
1

我使用TelerikRadSliderasp:Panel爲什麼Telerik RadSlider在Chrome中不可見?

ASP

<asp:ModalPopupExtender ID="pueTags"></asp:ModalPopupExtender> 
    <asp:Panel> 
     <telerik:RadSlider></telerik:RadSlider> 
    </asp:Panel> 

代碼隱藏

protected void imgBtnTags_click(object sender, ImageClickEventArgs e) 
{ 
    pueTags.show(); 
} 

當我點擊按鈕彈出窗口顯示和RadSlider在IE和FF,但在鉻工作正常,它是隱形的。 Here是伎倆,重繪按鈕點擊RadSlider我試着下面的代碼在按鈕點擊它也工作正常在IE和FF,但沒有在Chrome中。

<asp:ModalPopupExtender></asp:ModalPopupExtender> 
<asp:Panel> 
<asp:PlaceHolder ID="sliderPlaceHolder" runat="server"></asp:PlaceHolder> 
</asp:Panel> 

代碼隱藏

protected void imgBtnTags_click(object sender, ImageClickEventArgs e) 
{ 
    pueTags.show(); 

    RadSlider slider = new RadSlider(); 
    slider.ID = "sTagBookmark"; 
    slider.IsSelectionRangeEnabled = true; 
    slider.OnClientSlideEnd = "resetButtons"; 
    slider.SelectionStart = 0; 
    slider.SelectionEnd = 1; 
    slider.MaximumValue = 100; 
    slider.Width = 368; 
    sliderPlaceHolder.Controls.Add(slider); 
} 

回答

0

大概是因爲AjaxControlToolkit通過重寫MS AJAX庫的部分打破Telerik控制:http://docs.telerik.com/devtools/aspnet-ajax/general-information/troubleshooting/general-troubleshooting#telerik-controls-are-incompatible-with-ajax-control-toolkit

也許停止工具腳本管理的腳本結合可以幫助。

另一種選擇:查看拋出AjaxControlToolkit並使用Telerik套件中的RadWindow對話框。

至於repaint()調用,這應該發生在客戶端,顯示對話框後。由於ModalPopupExtender不公開很好的客戶端事件也沒有關於他們的資料,也許你最好的拍攝是從服務器註冊腳本,並與選時播放,是這樣的:

protected void imgBtnTags_click(object sender, ImageClickEventArgs e) 
{ 
    pueTags.show(); 
    string script = @"function f() { 
       setTimeout(function() { 
        $telerik.$('.RadSlider').each(function (index, elem) {{ 
         if (elem && elem.control && elem.control.repaint) 
          elem.control.repaint(); 
        }); 
       }, 500); /*play around with this timeout*/ 
       Sys.Application.remove_load(f); 
      }; Sys.Application.add_load(f);"; 
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "someKey", script, true); 
} 

當然,jQuery選擇我使用獲取頁面上的所有滑塊,並通過DOM對象屬性爲用戶提供他們的API。您可以使用$ find(),也可以調整選擇器以僅重新繪製所需的滑塊。

+0

完美重繪工作正常。 @rdmptn –