I have a data entry form which is launched as a new RadWindow above a summary page. As users maintain their data, events are fired back to code-behind to do calcs and refresh parts of the current page/window. For example, change a quantity ordered and the current inventory available quantity refreshes from the server. This works fine.
When done, users can also click Save, the current data gets saved on the server and the window is closed. This works fine.
There is a situation where a user will enter data, but not tab/enter away from the RadNumericTextBox. They just click Save without the textbox control losing focus. When this happens the Save triggers the event on the server and "simultaneously" the textbox fires its OnTextChanged event. This frequently results in the RadWindow remaining open, a server error firing, and possibly the session state getting lost. I can't define a consistent state because it's not consistent - it depends on which event gets processed first - and sometimes there's no error.
protected void radGridActivity_UpdateCommand(object source, GridCommandEventArgs e) { }
Dear Telerik Support:
I tried to set ExpandCollapseColumn-HeaderStyle-CssClass
="myTestCss" for example,
however, the column background color never changed. It always show Officew007 backgroup color.
The version of telerik control I am using is: RadControls for ASPNET AJAX Q1 2009
The skin of grid is: Office2007
Thanks,

<Rows> <Row> <Cell> <DataType>1</DataType> <ObjectType>2</ObjectType> <ObjectID>6212</ObjectID> <Value><![CDATA[1 Row 1 cell]]></Value> </Cell> <Cell> <DataType>1</DataType> <ObjectType></ObjectType> </Cell> <Cell> <DataType>1</DataType>......
Columns
<Columns> <Column> <ID><![CDATA[74]]></ID> <Sorting><![CDATA[ASC]]></Sorting> <SortingOrder><![CDATA[1]]></SortingOrder> <FieldName><![CDATA[EventName_Main]]></FieldName> <Label><![CDATA[foo]]></Label> <DataType><![CDATA[1]]></DataType> <PositionInList><![CDATA[155]]></PositionInList> </Column> <Column> <ID><![CDATA[518]]></ID> <Sorting><![CDATA[]]></Sorting> <SortingOrder><![CDATA[100]]></SortingOrder> <FieldName><![CDATA[Name_Rel513]]></FieldName> <Label><![CDATA[foobar]></Label> <DataType><![CDATA[1]]></DataType> <PositionInList><![CDATA[156]]></PositionInList> </Column>..........

<paragraphs> <paragraph name="Normal" value="<p>" /> <!--<paragraph name="<H1>Heading 1</H1>" value="<H1>" />--> <paragraph name="<H2>Heading 2</H2>" value="<H2>" /> <paragraph name="<H3>Heading 3</H3>" value="<H3>" /> <paragraph name="<H3 style='background:#d9d9d9; color:#4b4b4b; font-size: 14px; margin:0 0 10px; padding:5px;'>Heading 3 Highlight</H3>" value="<H3 class='highlight'>" /> <paragraph name="<H4>Heading 4</H4>" value="<H4>" /> <paragraph name="<H4 style='font-weight: bold;'>Heading 4 Strong</H4>" value="<H4 class='strong'>" /> <paragraph name="<H5>Heading 5</H5>" value="<H5>" /> </paragraphs> Hello,
I am using the following code to generate a grid for displaying and editing some data.
Unfortunately I am not able to get the value of the raddatepicker & the checkbox control in code behind to update the associated fields in the DB.
My aspx is as follows:
=================
<
telerik:RadGrid ID="grdSites" runat="server" AllowAutomaticDeletes="false" AutoGenerateColumns="False"
AllowMultiRowSelection="false" CssClass="MyRadGrid" AllowAutomaticUpdates="false">
<MasterTableView AllowSorting="False" AllowPaging="false" DataKeyNames="BanquetSiteId"
TableLayout="Fixed" ClientDataKeyNames="BanquetSiteId" EditMode="EditForms">
<NoRecordsTemplate>
<asp:Label runat="server" CssClass="AlignCenter" ID="lblNoRecords" ResourceKey="lblNoRecords"
Width="100%" align="center" />
</NoRecordsTemplate>
<Columns>
<telerik:GridBoundColumn DataField="SiteId" HeaderText="SiteId" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="SiteName" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# getSiteUrl(Eval("SiteAlias"))%>'
Text='<%# Eval("SiteName")%>' Target="Blank"></asp:HyperLink>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="ExpireDate" HeaderText="ExpireDate" HeaderStyle-HorizontalAlign="Left">
</telerik:GridBoundColumn>
<telerik:GridCheckBoxColumn DataField="IsActive" HeaderText="IsActive" HeaderStyle-HorizontalAlign="Left">
</telerik:GridCheckBoxColumn>
<telerik:GridEditCommandColumn ButtonType="LinkButton">
</telerik:GridEditCommandColumn>
</Columns>
<EditFormSettings EditFormType="Template">
<FormTemplate>
<table id="Table2" cellspacing="2" cellpadding="1" width="100%" border="0" rules="none"
style="border-collapse: collapse; background: white;">
<tr class="EditFormHeader">
<td colspan="2" style="font-size: small">
<b>Subscription Details</b>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label2" ResourceKey="litExpireDate" runat="server">Expire Date</asp:Label>
</td>
<td>
<telerik:RadDatePicker ID="rdpExpireDate" runat="server" ValidationGroup="BanquetSite" />
</td>
</tr>
<tr>
<td>
</td>
<td>
<asp:CheckBox ID="chkIsActive" Text="IsActive" ResourceKey="IsActive" Checked='<%# Bind( "IsActive" ) %>' runat="server" />
</td>
</tr>
<tr>
<td align="right" colspan="2">
<asp:Button ID="btnUpdate" Text="Update" runat="server" CommandName="Update"></asp:Button>
<asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False"
CommandName="Cancel"></asp:Button>
</td>
</tr>
</table>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
<ClientSettings EnablePostBackOnRowClick="false">
<ClientEvents></ClientEvents>
<Selecting AllowRowSelect="true" />
<Scrolling AllowScroll="true" UseStaticHeaders="True" SaveScrollPosition="True" />
</ClientSettings>
<PagerStyle Mode="NextPrevAndNumeric" />
</telerik:RadGrid>
Code behind:
===========
Private
Sub grdSites_UpdateCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles grdSites.UpdateCommand
Try
Dim banquetSitId As Integer = CType(grdSites.MasterTableView.DataKeyValues(e.Item.ItemIndex).Values(0), Integer)
'Dim rdp As RadDatePicker
Dim expireDate As DateTime = Nothing
Dim isActive As Boolean
'If e.CommandName = RadGrid.UpdateCommandName Then
' If TypeOf (e.Item) Is GridEditFormItem Then
' Dim item As GridEditFormItem = DirectCast(e.Item, GridEditFormItem)
' If DirectCast(item.FindControl("rdpExpireDate"), Telerik.Web.UI.RadDatePicker).SelectedDate.HasValue Then
' expireDate = CType(item.FindControl("rdpExpireDate"), Telerik.Web.UI.RadDatePicker).SelectedDate.Value
' End If
'End If
If TypeOf e.Item Is GridEditFormItem AndAlso e.Item.IsInEditMode AndAlso Not e.Item.OwnerTableView.IsItemInserted Then
'Dim editItem As GridEditFormItem = DirectCast(e.Item, GridEditFormItem)
'Dim item As GridDataItem = DirectCast(editItem.ParentItem, GridDataItem)
'Dim datepick As RadDatePicker = DirectCast(editItem.FindControl("rdpExpireDate"), RadDatePicker)
Dim editedItem As GridEditableItem = DirectCast(e.Item, GridEditableItem)
Dim datepick As RadDatePicker = DirectCast(editedItem.FindControl("rdpExpireDate"), RadDatePicker)
expireDate = datepick.SelectedDate.Value
End If
If Not e.Item.FindControl("rdpExpireDate") Is Nothing Then
If CType(e.Item.FindControl("rdpExpireDate"), Telerik.Web.UI.RadDatePicker).SelectedDate.HasValue Then
expireDate =
CType(e.Item.FindControl("rdpExpireDate"), Telerik.Web.UI.RadDatePicker).SelectedDate.Value
End If
End If
If Not e.Item.FindControl("chkIsActive") Is Nothing Then
isActive = CType(e.Item.FindControl("chkIsActive"), CheckBox).Checked
End If
BanquetController.UpdateBanquetSite(banquetSitId, expireDate, isActive)
lblMessage.Text = Localization.GetString(
"SubscribeSuccess.Text", Me.LocalResourceFile)
grdSites.EditIndexes.Clear()
BindBanquetSites()
Catch ex As Exception
lblMessage.Text = ex.Message
End Try
End Sub
In the above code "datepick.SelectedDate.Value" returns null for me.
I have tried out a number of other combinations(currently commented out) as well, all returning null for me.
Any help would be highly appreciated.
Thanks
Tariq
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="PickRequest.aspx.vb" Inherits="eRequest.PickRequestGrids.PickRequest" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"<html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <style type="text/css"> .desctable { border-collapse:collapse; } .desctable td, .desctable th { padding:3px 5px; border: 1px solid #94D3D9 } </style></head><body class="BODY"> <form runat="server" id="mainForm" method="post"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> <!-- content start --> <div class="bigModule"> <div class="bigModuleBottom"> <span class="title">Virtual scrolling and paging with client-side databinding:</span> <ul> <li>Drag the vertical scroll and release it to navigate to the desired page</li> </ul> </div> </div> <telerik:RadAjaxLoadingPanel ID="LoadingPanel" runat="server"></telerik:RadAjaxLoadingPanel> <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> <!-- function pageLoad(sender, args) { toggleLoadingPanel("<%= RadGrid1.ClientID %>", true); } function showLoadingPanel(sender, args) { toggleLoadingPanel(sender.get_id(), true); } function hideLoadingPanel(sender, args) { toggleLoadingPanel(sender.get_id(), false); } function toggleLoadingPanel(elementId, show) { var loadingPanel = $find("LoadingPanel"); if (show) { loadingPanel.show(elementId); } else { loadingPanel.hide(elementId); } } function handleScrolling(sender, args) { //check if the items are scrolled to bottom and get additional items if (args.get_isOnBottom()) { var master = sender.get_masterTableView(); if (master.get_pageSize() < master.get_virtualItemCount()) { //changing page size causes automatic rebind master.set_pageSize(master.get_pageSize() + 20); } } } --> </script> </telerik:RadCodeBlock> <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" PageSize="14" AutoGenerateColumns="false"> <PagerStyle Mode="NumericPages" /> <MasterTableView TableLayout="Fixed"> <Columns> <telerik:GridBoundColumn DataField="ereq" HeaderText="eReq" /> <telerik:GridBoundColumn DataField="Creator" HeaderText="Creator" HeaderStyle-Width="200px" /> <telerik:GridBoundColumn DataField="Requestor" HeaderText="Requestor" /> <telerik:GridBoundColumn DataField="Cost" HeaderText="RequestCost" DataFormatString="{0:C2}" /> <telerik:GridBoundColumn DataField="Created" HeaderText="CreatedOn" /> <telerik:GridBoundColumn DataField="Status" HeaderText="RequestStatus" /> <telerik:GridBoundColumn DataField="Vendor" HeaderText="Vendor" /> </Columns> </MasterTableView> <ClientSettings> <Scrolling AllowScroll="True" EnableVirtualScrollPaging="True" UseStaticHeaders="True"> </Scrolling> <DataBinding Location="PickRequest.aspx" SelectMethod="PickRequests" SelectCountMethod="GetRequestCount" StartRowIndexParameterName="startRowIndex" MaximumRowsParameterName="maxRows" /> <ClientEvents OnCommand="showLoadingPanel" OnDataBound="hideLoadingPanel" /> </ClientSettings> </telerik:RadGrid> <!-- content end --> </form></body></html>Imports SystemImports System.DataImports System.Data.SqlClientImports System.ConfigurationImports Telerik.Web.UIImports System.Collections.GenericImports System.Web.ServicesImports eReqBizNamespace PickRequestGrids Partial Public MustInherit Class PickRequest Inherits System.Web.UI.Page Dim log As New Logging Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Try Dim bizRules As New eReqBiz.BizRules Dim ret As List(Of RequestList) = New List(Of RequestList) 'Dim [select] As String = "SELECT ID, ProductName, QuantityPerUnit, UnitPrice, UnitsInStock FROM LargeProducts WHERE ID > @StartIndex AND ID <= @EndIndex" Dim curUser As String = Session("UID") 'Dim parameters As New Dictionary(Of String, Object)() 'parameters("StartIndex") = Math.Max(startRowIndex, 0) 'parameters("EndIndex") = Math.Max(startRowIndex + maxRows, maxRows) 'Dim data As DataTable = ExecuteSelect([select], parameters, ConfigurationManager.ConnectionStrings("TelerikConnectionString").ConnectionString) Dim data As DataTable = bizRules.PickEreqs(curUser, "ViewOpen", "PO", "ViewOpen") For Each row As DataRow In data.Rows Dim request As New RequestList() request.eReq = DirectCast(row("ereq"), Integer) request.Creator = DirectCast(row("Creator"), String) request.Requestor = DirectCast(row("Requestor"), String) request.Cost = DirectCast(row("Cost"), Decimal) request.Creator = DirectCast(row("Created"), DateTime) request.Status = DirectCast(row("Status"), String) request.Vendor = DirectCast(row("Vendor"), String) ret.Add(request) Next Catch ex As Exception log.WriteErrorLogEntry(Logging.ErrorType.AppErr, "PickRequest Error = " & ex.ToString) End Try End Sub <WebMethod()> _ Public Shared Function GetRequestCount() As Integer Return 50 End Function <WebMethod()> _ Public Shared Function PickRequests(ByVal startRowIndex As Integer, ByVal maxRows As Integer) As IEnumerable(Of RequestList) Dim bizProcess As New eReqBiz.Process Dim bizRules As New eReqBiz.BizRules Dim curUser As String = "SYS.LJW" 'Session("UID") Dim ret As List(Of RequestList) = New List(Of RequestList) 'Dim [select] As String = "SELECT ID, ProductName, QuantityPerUnit, UnitPrice, UnitsInStock FROM LargeProducts WHERE ID > @StartIndex AND ID <= @EndIndex" 'Dim parameters As New Dictionary(Of String, Object)() 'parameters("StartIndex") = Math.Max(startRowIndex, 0) 'parameters("EndIndex") = Math.Max(startRowIndex + maxRows, maxRows) 'Dim data As DataTable = ExecuteSelect([select], parameters, ConfigurationManager.ConnectionStrings("TelerikConnectionString").ConnectionString) Dim data As DataTable = bizRules.PickEreqs(curUser, "ViewOpen", "PO", "ViewOpen") For Each row As DataRow In data.Rows Dim request As New RequestList() request.eReq = DirectCast(row("ereq"), Integer) request.Creator = DirectCast(row("Creator"), String) request.Requestor = DirectCast(row("Requestor"), String) request.Cost = DirectCast(row("Cost"), Decimal) request.Creator = DirectCast(row("Created"), DateTime) request.Status = DirectCast(row("Status"), String) request.Vendor = DirectCast(row("Vendor"), String) ret.Add(request) Next Return ret End Function <WebMethod()> _ Public Shared Function GetOrderCount() As Integer Return 200 End Function 'Private Shared Function ExecuteSelect(ByVal selectCommand As String, ByVal parameters As Dictionary(Of String, Object), ByVal connectionString As String) As DataTable ' Dim MySqlConnection As New SqlConnection(connectionString) ' Dim MySqlDataAdapter As New SqlDataAdapter() ' MySqlDataAdapter.SelectCommand = New SqlCommand(selectCommand, MySqlConnection) ' For Each pair As KeyValuePair(Of String, Object) In parameters ' MySqlDataAdapter.SelectCommand.Parameters.Add(New SqlParameter(pair.Key, pair.Value)) ' Next ' Dim data As New DataTable() ' MySqlConnection.Open() ' Try ' MySqlDataAdapter.Fill(data) ' Finally ' MySqlConnection.Close() ' End Try ' Return data 'End Function End Class Public Class RequestList Private _ereq As Integer Private _requestType As String Private _requestor As String Private _cost As Decimal Private _status As String Private _vendor As String Private _creator As String Private _created As DateTime Public Property eReq() As Integer Get Return _ereq End Get Set(ByVal value As Integer) _ereq = value End Set End Property Public Property RequestType() As String Get Return _requestType End Get Set(ByVal value As String) _requestType = value End Set End Property Public Property Requestor() As String Get Return _requestor End Get Set(ByVal value As String) _requestor = value End Set End Property Public Property Cost() As Decimal Get Return _cost End Get Set(ByVal value As Decimal) _cost = value End Set End Property Public Property Status() As String Get Return _status End Get Set(ByVal value As String) _status = value End Set End Property Public Property Vendor() As String Get Return _vendor End Get Set(ByVal value As String) _vendor = value End Set End Property Public Property Creator() As String Get Return _creator End Get Set(ByVal value As String) _creator = value End Set End Property Public Property Created() As DateTime Get Return _created End Get Set(ByVal value As DateTime) _created = value End Set End Property End ClassEnd Namespace