【问题标题】:Telerik radlistbox fires both OnClientItemChecked and OnClientSelectedIndexChanged when an item is checkedTelerik radlistbox 在检查项目时同时触发 OnClientItemChecked 和 OnClientSelectedIndexChanged
【发布时间】:2010-09-20 00:19:11
【问题描述】:

当在 Firefox 和 IE 中检查项目但在 Chrome 中未检查时,Telerik radlistbox 会触发 OnClientItemChecked 和 OnClientSelectedIndexChanged。

Chrome 似乎有正确的行为。是否有一个原因? 我可以让 IE 和 Firefox 也有相应的行为吗?

更多上下文;

这个 radlistbox 被加载到 ascx 面板中。

<telerik:RadListBox CheckBoxes="true" EnableDragAndDrop="True" Height="400" 
ID="radListBox0" OnClientItemChecked="OnClientItemChecked" 
OnClientSelectedIndexChanged="OnClientSelectedIndexChanged" runat="server" 
SelectionMode="Single" Visible="true" Width="275" />

这是它在同一个 ascx 文件中声明的 Javascript:

<telerik:RadCodeBlock ID="radCodeBlock" runat="server">

    <script type="text/javascript">
        function OnClientSelectedIndexChanged(sender, eventArgs) {
                        var ajaxManager = 
                            $find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>");
                        var t = sender._clientStateFieldID;
                        if (ajaxManager != null)
                            ajaxManager.ajaxRequest("ListBoxIndexChanged|" + t);
        }
        function OnClientItemChecked(sender, eventArgs) {

        }
    </script>
</telerik:RadCodeBlock>

9/22/2010 17:03 编辑:所以我在第一个响应中使用最新版本。 仍然没有运气。我做了我应该先做的事,然后在一个空白的 aspx 页面上尝试了一个香草 radlistbox。 那里没有错误,所以我猜它必须这样做,因为控制问题是在具有多层自定义控件甚至母版页的页面上的模式弹出窗口内构建的。至少我知道现在不是 Telerik。

【问题讨论】:

    标签: c# javascript asp.net telerik


    【解决方案1】:

    我试图重现该问题,但无法重现(Windows 7 x64)。我已经在 Chrome 6.0、FireFox 3.6.10 和 IE 8 下测试了以下代码,它们的行为都相同:

    <%@ Page Language="C#" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="scm" runat="server" />
    
    
            <telerik:RadCodeBlock ID="radCodeBlock" runat="server">
    
            <script type="text/javascript">
                function OnClientSelectedIndexChanged(sender, eventArgs) {
                    alert('OnClientSelectedIndexChanged');
                }
                function OnClientItemChecked(sender, eventArgs) {
                    alert('OnClientItemChecked');
                }
                </script>
            </telerik:RadCodeBlock>
    
            <telerik:RadListBox 
                CheckBoxes="true" 
                EnableDragAndDrop="True" 
                ID="radListBox0" 
                OnClientItemChecked="OnClientItemChecked" 
                OnClientSelectedIndexChanged="OnClientSelectedIndexChanged" 
                runat="server" 
                SelectionMode="Single" 
                Visible="true">
                <Items>
                    <telerik:RadListBoxItem Value="value1" Text="text1" />
                    <telerik:RadListBoxItem Value="value2" Text="text2" />
                    <telerik:RadListBoxItem Value="value3" Text="text3" />
                </Items>
            </telerik:RadListBox>
        </form>
    </body>
    </html>
    

    仅调用了一个客户端处理程序:OnClientItemCheckedOnClientSelectedIndexChanged

    【讨论】:

    • 谢谢,这是很好的信息。您使用的是哪个版本的 Telerik ASP.NET 控件?即使我只是复制并粘贴您的代码,这两个事件都会在检查时触发。
    • 在 ASP.NET 4.0 项目中使用Telerik.Web.UI, Version=2010.2.826.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4。我刚刚从 Telerik 网站直接下载了一份新副本,奇怪的是,该 zip 名为 Telerik.Web.UI_2010_2_826_Dev_hotfix.zip :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多