0

私はRadPanelBarを持っています...

<telerik:RadPanelBar 
    ID="ResourcesSubMenuRadPanelBar1"
    Width="195px" 
    OnItemClick="RadPanelItemClick"
    ExpandMode="MultipleExpandedItems"    
    OnClientItemClicked="RadPanelClientItemClicked"       
    OnClientLoad="RadPanelBarClientLoad"     
    runat="server" 
    AppendDataBoundItems="true" 
    EnableEmbeddedSkins="false" 
    OnClientItemCollapse="RadPanelClientItemClicked" 
    OnClientItemExpand="RadPanelClientItemClicked">    
</telerik:RadPanelBar>

これは、1つの小さなことを除いて、すべて期待どおりに機能します。コードビハインドでは、NavigateUrlプロパティを明示的にに設定していますstring.Emptyが、アイテムがクリックされると、URLにハッシュが追加されます。明らかに、これは、コントロールがをレンダリングするときにhref属性がに設定されているためです。"#"HTML

私はイベントreturn falseから簡単にできることを知っていますが、それはサーバー上でイベントが発生するのを防ぎます。OnClientItemClickedItemClick

私が言っているように、このコードには実際のエラーはありません#。URLに追加されていることが私(そしてさらに重要なことに、エンドユーザー)を悩ませているだけです。

誰かがこれを止める方法を知っていますか?

4

2 に答える 2

1

OnClientItemClickingイベントでこれを試してください:eventArgs.set_cancel(true);

参照:http ://www.telerik.com/help/aspnet-ajax/panelbar-onclientitemclicking.html


また、ポストバックを発生させたい場合は、item.PostBackプロパティ(サーバー側)があると思います。trueに設定します。ナビゲートUrlが空(または#)の場合は、ポストバックする必要があります。

于 2011-08-08T11:36:15.943 に答える
0

ほぼすべてのブラウザー (IE9 以降) と互換性があります。

Javascript (jQuery なし):

stripTelerikHashtag = function () {
    [].forEach.call(
        document.querySelectorAll(".rpLink"),
        function (a) { a.removeAttribute("href") }
    );
};

Javascript (jQuery を使用):

stripTelerikHashtag = function () { $(".rpLink").removeAttr("href"); };

ASP でOnClientLoad、RadPanelBar を に設定しますstripTelerikHashtag

于 2014-08-04T19:32:55.887 に答える