当检查项目时,Telerik radlistbox触发OnClientItemChecked和OnClientSelectedIndexChanged

时间:2010-09-20 00:19:12

标签: c# javascript asp.net telerik

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

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页面上尝试了一个vanilla radlistbox。 那里没有错误,所以我猜它必须这样做,因为控件问题是在一个带有多层自定义控件甚至母版页的页面上的模态弹出窗口内构建的。至少我知道现在不是Telerik。

1 个答案:

答案 0 :(得分:0)

我尝试重现此问题,但无法重现(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