RadComboBox与Checkboxes AJAX问题

时间:2011-06-09 10:01:27

标签: javascript asp.net ajax telerik radcombobox

我创建了带有复选框列表的radcombobox。用户可以选择多个复选框,当他检查页面上的某些项目标签时,必须更新(this.label.text + = someValue)。我在radcombobox上添加了Ajax:UpdatePanel和异步触发器,但问题是当用户检查项目下拉列表关闭它自己时:(如何防止关闭下拉列表?这里我尝试过:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<telerik:RadComboBox runat="server" ID="rcb" Width="200px" HighlightTemplatedItems="true" 
    AllowCustomText="true" Text="Select Item" MaxHeight="250px" EnableTextSelection="false" AutoPostBack="true"
    OnClientSelectedIndexChanging="OnClientSelectedIndexChanging()">
    <Items>
        <telerik:RadComboBoxItem Value="0" Text="Select..." />
        <telerik:RadComboBoxItem Value="1" Text="Small" />
        <telerik:RadComboBoxItem Value="2" Text="Medium" />
        <telerik:RadComboBoxItem Value="3" Text="Large" />
    </Items>
    <ItemTemplate>        
            <asp:CheckBox onclick="stopPropagation(event);" ID="chk_Category" runat="server" Text="test" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged" />       
    </ItemTemplate>    
</telerik:RadComboBox>

<dnn:label ID="lbl" runat="server" Text="nothing" />

</ContentTemplate>
<Triggers>
    <asp:AsyncPostBackTrigger ControlID="rcb"/>    
</Triggers>
</asp:UpdatePanel>

<script type="text/javascript" language="javascript">
        // <![CDATA[
    function stopPropagation(e) {        
        e.cancelBubble = true;
        if (e.stopPropagation) {
            e.stopPropagation();
        }
    }
    function OnClientSelectedIndexChanging(item) {       
        return false;
    }

                // ]]>
</script>

1 个答案:

答案 0 :(得分:1)

通常,当您点击该项目时,下拉关闭;我们在组合框模板中使用了一个复选框,并且只在单击项目本身时经历了关闭(选择项目,这会让人感到困惑)。

这里的问题是每个复选框都会回发到服务器,因此这是最可能的原因。单击后是否必须将复选框响应发送回服务器?另一种方法是批量读取每个项目的复选框控件,或者每次检查项目时,将已检查项目的值存储在隐藏控件中。

或者,作为FYI,对于2011年第二季度发布,即将推出此功能:多选复选框模式。因此复选框将是组合框的默认功能。如果您有支持,可以尽快升级。

HTH。