I have enabled the GridCheckBoxColumn's checkboxes during the ItemDataBound event. Thus the client can click the (otherwise disabled) checkboxes. Although I have set the AutoPostBack=true and added a handler for the CheckedChanged event I receive no postback.
Please advice (v2013.2.717.35).
Please advice (v2013.2.717.35).
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %><!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"> <div> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1"></telerik:AjaxUpdatedControl> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadGrid ID="RadGrid1" Width="300px" AllowPaging="True" PageSize="10" runat="server" AllowSorting="true" GridLines="None" AutoGenerateColumns = "False" AllowMultiRowSelection="True"> <ClientSettings ColumnsReorderMethod="Reorder" EnablePostBackOnRowClick="true"> <Selecting AllowRowSelect="True" /> </ClientSettings> <MasterTableView Width="100%" EditMode="InPlace"> <RowIndicatorColumn Visible="False"> </RowIndicatorColumn> <ExpandCollapseColumn Created="True"> </ExpandCollapseColumn> <Columns> <telerik:GridCheckBoxColumn HeaderText="Select" DataField="IsSelected" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center"></telerik:GridCheckBoxColumn> <telerik:GridBoundColumn HeaderText="Item name" DataField="ItemID"></telerik:GridBoundColumn> </Columns> </MasterTableView> <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle> </telerik:RadGrid> </div> </form></body></html>
Imports System.DataImports Telerik.Web.UIPartial Class _Default Inherits System.Web.UI.Page
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then MakeDatasource() End If End Sub Protected Sub RadGrid1_NeedDataSource(ByVal source As Object, ByVal e As GridNeedDataSourceEventArgs) Handles RadGrid1.NeedDataSource RadGrid1.DataSource = Session("ItemData") End Sub Protected Sub RadGrid1_ItemDataBound(ByVal sender As Object, ByVal e As GridItemEventArgs) Handles RadGrid1.ItemDataBound If TypeOf e.Item Is GridEditableItem Then Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem) Dim chk As CheckBox = DirectCast(item("IsSelected").Controls(0), CheckBox) chk.Enabled = True chk.AutoPostBack = True AddHandler chk.CheckedChanged, AddressOf UpdateEditedItem End If End Sub Protected Sub UpdateEditedItem(ByVal sender As Object, ByVal e As EventArgs) Dim chk As CheckBox = DirectCast(sender, CheckBox) Dim item As GridEditableItem = DirectCast(chk.NamingContainer, GridEditableItem) Dim values As New Hashtable() item.ExtractValues(values) For Each rowView As DataRowView In mData Dim row As DataRow = rowView.Row If values("ItemID") = row("ItemID").ToString() Then row("IsSelected") = Not row("IsSelected") Exit For End If Next Session("ItemData") = mData RadGrid1.Rebind() End Sub Private Sub MakeDatasource() Dim dt As New DataTable dt.Columns.Add("IsSelected") dt.Columns.Add("ItemID") Dim dv As DataView = dt.DefaultView For i = 0 To 19 Dim newRow As DataRowView = dv.AddNew() newRow("IsSelected") = (i Mod 2 = 0) 'every other row is selected newRow("ItemID") = "item " + i.ToString() newRow.EndEdit() Next Session("ItemData") = dv End SubEnd Class