KC:
I have verified that the documentation is indeed correct and that, when you have defined your RadComboBox with
AutoPostBack="true", a postback will occur when selecting the "Check All" option in the RadComboBox. On the server-side, you will be able to access the collection of checked items in the manner of the
ComboBox / CheckBoxes online demo.
If you cannot set AutoPostBack="true", I have found an alternative solution that forces a postback using the OnClientBlur event of the RadComboBox using JavaScript.
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %>
<head runat="server">
<title></title>
<telerik:RadStyleSheetManager id="RadStyleSheetManager1" runat="server" />
</head>
<body>
<form id="form1" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
<Scripts>
<%--Needed for JavaScript IntelliSense in VS2010--%>
<%--For VS2008 replace RadScriptManager with ScriptManager--%>
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
</Scripts>
</telerik:RadScriptManager>
<script type="text/javascript">
function IsCheckAllSelected(sender, eventArgs) {
var itemCount = sender.get_items().get_count();
var selectedItemCount = sender.get_checkedItems().length;
if (selectedItemCount == itemCount) {
alert('check-all was checked')
__doPostBack('RadComboBox1', 'Check All');
}
else {
return 0
}
}
</script>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
</telerik:RadAjaxManager>
<div>
<telerik:RadComboBox ID="RadComboBox1" runat="server" CheckBoxes="true" EnableCheckAllItemsCheckBox="true"
Width="300px" OnClientBlur="IsCheckAllSelected" >
<items>
<telerik:RadComboBoxItem Text="Arts" />
<telerik:RadComboBoxItem Text="Biographies" />
<telerik:RadComboBoxItem Text="Children's Books" />
<telerik:RadComboBoxItem Text="Computers � Internet" />
<telerik:RadComboBoxItem Text="Cooking" />
<telerik:RadComboBoxItem Text="History" />
<telerik:RadComboBoxItem Text="Fiction" />
<telerik:RadComboBoxItem Text="Mystery" />
<telerik:RadComboBoxItem Text="Nonfiction" />
<telerik:RadComboBoxItem Text="Romance" />
<telerik:RadComboBoxItem Text="Science Fiction " />
<telerik:RadComboBoxItem Text="Travel" />
</items>
</telerik:RadComboBox>
</div>
<asp:Label ID="itemsClientSide" runat="server" Text=""></asp:Label>
</form>
</body>
</html>
Default.aspx.cs:
using System;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Telerik.Web.UI;
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
var target = Request.Params["__EVENTTARGET"];
var argument = Request.Params["__EVENTARGUMENT"];
// If the RadComboBox1 "check all" checkbox was selected, populate the list of checked items.
if (target == "RadComboBox1" && argument == "Check All")
ShowCheckedItems(RadComboBox1, itemsClientSide);
}
}
private static void ShowCheckedItems(RadComboBox comboBox, Label label)
{
var sb = new StringBuilder();
var collection = comboBox.CheckedItems;
foreach (var item in collection)
sb.Append(item.Text + "<br />");
label.Text = sb.ToString();
}
}
See attached image for screen display of postback.