I am not sure if my goal is possible with the current design of the RadGrid.
Goal:
To have a RadGrid setup so that the first 2 columns are frozen, and the remaining columns are reorderable and use the reorder animation.
Attempt 1:
Good - I can not start a drag on the first 2 columns
Bad - I can drag one of the AutoGenerated columns over the first 2 column spots and the animation shows the reorder
Good - When dropping over one of the first two columns it will revert back and not actually do the reorder.
...
<ClientSettings AllowColumnsReorder="true" ReorderColumnsOnClient="true" ColumnsReorderMethod="Reorder"
Animation-AllowColumnReorderAnimation="true" Animation-AllowColumnRevertAnimation="true">
</ClientSettings>
<MasterTableView>
<Columns>
<telerik:GridTemplateColumn Reorderable="false"><ItemTemplate>One</ItemTemplate></telerik:GridTemplateColumn>
<telerik:GridTemplateColumn Reorderable="false"><ItemTemplate>Two</ItemTemplate></telerik:GridTemplateColumn>
...AutoGenerated Columns Here
</Columns>
</MasterTableView>
...
Attempt 2:
Good - I can not start a drag on the first 2 columns
Good - I can not drag one of the AutoGenerated columns over the first 2 column spots
Bad - The reorder animation is not working in this case
...
<ClientSettings AllowColumnsReorder="true" ReorderColumnsOnClient="true" ColumnsReorderMethod="Reorder"
Animation-AllowColumnReorderAnimation="true" Animation-AllowColumnRevertAnimation="true"
Scrolling-AutoScroll="true" Scrolling-FrozenColumnsCount="2"
Scrolling-UseStaticHeaders="true" Scrolling-SaveScrollPosition="true">
</ClientSettings>
<MasterTableView>
<Columns>
<telerik:GridTemplateColumn Reorderable="false"><ItemTemplate>One</ItemTemplate></telerik:GridTemplateColumn>
<telerik:GridTemplateColumn Reorderable="false"><ItemTemplate>Two</ItemTemplate></telerik:GridTemplateColumn>
...AutoGenerated Columns Here
</Columns>
</MasterTableView>
...
Any advice or ideas are greatly appreciated.
Thanks!
-Dan
The loading panel shows the first time.
HttpAnalyzer first time:
<table id="ctl39_RadioButtonList_Goal" class="radiobuttonlist-default" border="0" style="width:100%;"> <tr> <td><input id="ctl39_RadioButtonList_Goal_0" type="radio" name="ctl39$RadioButtonList_Goal" value="0" checked="checked" /><label for="ctl39_RadioButtonList_Goal_0">Трудоустройство</label></td> </tr><tr> <td><input id="ctl39_RadioButtonList_Goal_1" type="radio" name="ctl39$RadioButtonList_Goal" value="1" onclick="javascript:setTimeout('__doPostBack(\'ctl39$RadioButtonList_Goal$1\',\'\')', 0)" /><label for="ctl39_RadioButtonList_Goal_1">Практика</label></td> </tr> </table> </div>|61|updatePanel|ctl39_radAjaxManagerSU|<span id="ctl39_radAjaxManager" style="display:none;"></span>|0|hiddenField|__EVENTTARGET||0|hiddenField|__EVENTARGUMENT||0|hiddenField|__LASTFOCUS||1716|hiddenField|__VIEWSTATE|/wEPDwUJNzY4NzI0NDkwD2QWAmYPZBYEAgEPZBYCZg9kFgJmD2QWAmYPFgIeC18hSXRlbUNvdW50AgIWBGYPZBYCZg8VAizQkNC90LrQtdGC0LAg0LrQsNC90LTQuNC00LDRgtCwINC+0L3Qu9Cw0LnQvQMgLSBkAgEPZBYCZg8VAhsi0J/RgNC40L7RgNCx0LDQvdC6IiDQntCQ0J4AZAIDD2QWBmYPDxYCHgdWaXNpYmxlaGQWAgICD2QWBAIDDxBkEBUJBUJsYW5rB0RlZmF1bHQQcnNmIGFkdiBjYXJvdXNlbApyc2YgYmFubmVyC3JzZiBkZWZhdWx0CHJzZiBsZWZ0DHJzZiBubyB0aXRsZQlyc2YgcmlnaHQKcnNmIHNpbXBsZRUJAjE3Ai0xAjI3AjM1AjIxAjMzAjIzAjM0AjIyFCsDCWdnZ2dnZ2dnZxYBZmQCEQ8QZGQWAWZkAgEPDxYCHwFoZGQCCQ9kFhACKA9kFgICAQ8WAh8AAgIWBAIBD2QWAmYPFQJiPHRkPjxhIGhyZWY9Ii9yL2Fib3V0L3ZhY2FuY3kvYW5rZXRhb25saW5lLyI+0JDQvdC60LXRgtCwINC60LDQvdC00LjQtNCw0YLQsCDQvtC90LvQsNC50L08L2E+PC90ZD5SPHRkPjxpbWcgc3JjPSIvaW1hZ2VzL3JjL3BhdGgtdXNlci9hcnJvdy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWx0PSIvIj48L3RkPmQCAg9kFgJmDxUCNjx0ZD48YSBocmVmPSIvci8iPiLQn9GA0LjQvtGA0LHQsNC90LoiINCe0JDQnjwvYT48L3RkPgBkAi4PZBYCAgEPDxYCHgRUZXh0BRzQp9GCLCAwMiDRhNC10LLRgNCw0LvRjyAyMDEyZGQCQg8PFgIeDF9fUFRWX21lbnVJZAI+ZBYCAgEPZBYCAgEPEGRkFgBkAk4PDxYCHwMCggFkFgICAQ9kFgICAQ8QZGQWAGQCVQ9kFgJmD2QWAgIDDw9kFgIeCkVkaXRvck1vZGUFBUZhbHNlFgJmD2QWAmYPZBYEAgEPFCsAAhQrAAIPFgIeC18hRGF0YUJvdW5kZ2QQFgJmAgEWAhQrAAIPZBYCHgJJRAUJdGFiRWRpdG9yZBQrAAIPZBYCHwYFDXRhYlNpbXBsZVRleHRkDxYCZmYWAQVuVGVsZXJpay5XZWIuVUkuUmFkVGFiLCBUZWxlcmlrLldlYi5VSSwgVmVyc2lvbj0yMDEwLjEuNDE1LjM1LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTEyMWZhZTc4MTY1YmEzZDRkFgRmDw9kFgIfBgUJdGFiRWRpdG9yZAIBDw9kFgIfBgUNdGFiU2ltcGxlVGV4dGQCBQ8UKwACZBUCClBhZ2VWaWV3XzEKUGFnZVZpZXdfMhYCZg9kFgICAQ88KwAWABYCZg8PFgIeBFNraW4FB0RlZmF1bHRkFgJmDw8WBB4VU2hvd0NvbnRlbnREdXJpbmdMb2FkaB4ORGVzdHJveU9uQ2xvc2VoZGQCigEPZBYCAgEPDxYCHhdFbmFibGVBamF4U2tpblJlbmRlcmluZ2hkZAKqAQ8PFgIfAwJJZBYCAgEPZBYCAgEPEGRkFgBkAocCDw8WAh8DAlNkFgICAQ9kFgICAQ8QZGQWAGRk|76|hiddenField|__EVENTVALIDATION|/wEWCQLuqZKrCQLtypk7AvLKmTsC/aWz1QwC65yXTQLVmKOhAQKqz5nVBgK8he+tAgKuvtzaBQ==|0|asyncPostBackControlIDs|||0|postBackControlIDs|||52|updatePanelIDs||tctl39$ctl39$PanelStartPanel,tctl39$radAjaxManagerSU|0|childUpdatePanelIDs|||50|panelsToRefreshIDs||ctl39$ctl39$PanelStartPanel,ctl39$radAjaxManagerSU|2|asyncPostBackTimeout||90|52|formAction||default.aspx?item=r%2fabout%2fvacancy%2fanketaonline|656|updatePanel|ctl39_ctl39_PanelStartPanel|<div id="ctl39_PanelStart"> <table id="ctl39_RadioButtonList_Goal" class="radiobuttonlist-default" border="0" style="width:100%;"> <tr> <td><input id="ctl39_RadioButtonList_Goal_0" type="radio" name="ctl39$RadioButtonList_Goal" value="0" checked="checked" /><label for="ctl39_RadioButtonList_Goal_0">Трудоустройство</label></td> </tr><tr> <td><input id="ctl39_RadioButtonList_Goal_1" type="radio" name="ctl39$RadioButtonList_Goal" value="1" onclick="javascript:setTimeout('__doPostBack(\'ctl39$RadioButtonList_Goal$1\',\'\')', 0)" /><label for="ctl39_RadioButtonList_Goal_1">Практика</label></td> </tr> </table> </div>|0|hiddenField|__EVENTTARGET||0|hiddenField|__EVENTARGUMENT||0|hiddenField|__LASTFOCUS||1716|hiddenField|__VIEWSTATE|/wEPDwUJNzY4NzI0NDkwD2QWAmYPZBYEAgEPZBYCZg9kFgJmD2QWAmYPFgIeC18hSXRlbUNvdW50AgIWBGYPZBYCZg8VAizQkNC90LrQtdGC0LAg0LrQsNC90LTQuNC00LDRgtCwINC+0L3Qu9Cw0LnQvQMgLSBkAgEPZBYCZg8VAhsi0J/RgNC40L7RgNCx0LDQvdC6IiDQntCQ0J4AZAIDD2QWBmYPDxYCHgdWaXNpYmxlaGQWAgICD2QWBAIDDxBkEBUJBUJsYW5rB0RlZmF1bHQQcnNmIGFkdiBjYXJvdXNlbApyc2YgYmFubmVyC3JzZiBkZWZhdWx0CHJzZiBsZWZ0DHJzZiBubyB0aXRsZQlyc2YgcmlnaHQKcnNmIHNpbXBsZRUJAjE3Ai0xAjI3AjM1AjIxAjMzAjIzAjM0AjIyFCsDCWdnZ2dnZ2dnZxYBZmQCEQ8QZGQWAWZkAgEPDxYCHwFoZGQCCQ9kFhACKA9kFgICAQ8WAh8AAgIWBAIBD2QWAmYPFQJiPHRkPjxhIGhyZWY9Ii9yL2Fib3V0L3ZhY2FuY3kvYW5rZXRhb25saW5lLyI+0JDQvdC60LXRgtCwINC60LDQvdC00LjQtNCw0YLQsCDQvtC90LvQsNC50L08L2E+PC90ZD5SPHRkPjxpbWcgc3JjPSIvaW1hZ2VzL3JjL3BhdGgtdXNlci9hcnJvdy5naWYiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgYWx0PSIvIj48L3RkPmQCAg9kFgJmDxUCNjx0ZD48YSBocmVmPSIvci8iPiLQn9GA0LjQvtGA0LHQsNC90LoiINCe0JDQnjwvYT48L3RkPgBkAi4PZBYCAgEPDxYCHgRUZXh0BRzQp9GCLCAwMiDRhNC10LLRgNCw0LvRjyAyMDEyZGQCQg8PFgIeDF9fUFRWX21lbnVJZAI+ZBYCAgEPZBYCAgEPEGRkFgBkAk4PDxYCHwMCggFkFgICAQ9kFgICAQ8QZGQWAGQCVQ9kFgJmD2QWAgIDDw9kFgIeCkVkaXRvck1vZGUFBUZhbHNlFgJmD2QWAmYPZBYEAgEPFCsAAhQrAAIPFgIeC18hRGF0YUJvdW5kZ2QQFgJmAgEWAhQrAAIPZBYCHgJJRAUJdGFiRWRpdG9yZBQrAAIPZBYCHwYFDXRhYlNpbXBsZVRleHRkDxYCZmYWAQVuVGVsZXJpay5XZWIuVUkuUmFkVGFiLCBUZWxlcmlrLldlYi5VSSwgVmVyc2lvbj0yMDEwLjEuNDE1LjM1LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTEyMWZhZTc4MTY1YmEzZDRkFgRmDw9kFgIfBgUJdGFiRWRpdG9yZAIBDw9kFgIfBgUNdGFiU2ltcGxlVGV4dGQCBQ8UKwACZBUCClBhZ2VWaWV3XzEKUGFnZVZpZXdfMhYCZg9kFgICAQ88KwAWABYCZg8PFgIeBFNraW4FB0RlZmF1bHRkFgJmDw8WBB4VU2hvd0NvbnRlbnREdXJpbmdMb2FkaB4ORGVzdHJveU9uQ2xvc2VoZGQCigEPZBYCAgEPDxYCHhdFbmFibGVBamF4U2tpblJlbmRlcmluZ2hkZAKqAQ8PFgIfAwJJZBYCAgEPZBYCAgEPEGRkFgBkAocCDw8WAh8DAlNkFgICAQ9kFgICAQ8QZGQWAGRk|76|hiddenField|__EVENTVALIDATION|/wEWCQLuqZKrCQLtypk7AvLKmTsC/aWz1QwC65yXTQLVmKOhAQKqz5nVBgK8he+tAgKuvtzaBQ==|0|asyncPostBackControlIDs|||0|postBackControlIDs|||52|updatePanelIDs||tctl39$ctl39$PanelStartPanel,tctl39$radAjaxManagerSU|0|childUpdatePanelIDs|||27|panelsToRefreshIDs||ctl39$ctl39$PanelStartPanel|2|asyncPostBackTimeout||90|52|formAction||default.aspx?item=r%2fabout%2fvacancy%2fanketaonline|
<%@ Control Language="C#" Inherits="Test" CodeFile="Test.ascx.cs" %><telerik:RadAjaxLoadingPanel ID="LoadingPanel_1" runat="server" IsSticky="false" BackColor="#FFFFFF" Transparency="15" InitialDelayTime="0"></telerik:RadAjaxLoadingPanel> <telerik:RadAjaxManager ID="radAjaxManager" runat="server" RequestQueueSize="50" RestoreOriginalRenderDelegate="True" EnableAJAX="True"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadioButtonList_Goal"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="PanelStart" LoadingPanelID="LoadingPanel_1" UpdatePanelRenderMode="Block" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <div class="ContentForm"> <asp:Panel ID="PanelStart" runat="server" Visible="true"> <asp:RadioButtonList id="RadioButtonList_Goal" runat="server" Width="100%" DataTextField="text" DataValueField="value" AutoPostBack="true" EnableViewState="False"> <asp:ListItem Value="0">Трудоустройство</asp:ListItem> <asp:ListItem Value="1" Selected="True">Практика</asp:ListItem> </asp:RadioButtonList> </asp:Panel> </div>using System;using System.Data;using System.Diagnostics;using System.Web.UI.WebControls;using System.Configuration;using System.Text;using System.Data.SqlClient;using System.Xml;using System.Web.UI;using RSDN;using System.Net;using Telerik.Web.UI;using System.Collections.Generic;using System.Collections;using System.Xml.Linq;namespace AnketaOnline{ public partial class Test : Feedback { /// <summary> /// portlet title /// </summary> public override string GetPortletTitle() { return " AnketaOnline, Анкета по трудоустройству онлайн"; } }}function onCheckBoxClick(chk, comboId) { var text = "", values = ""; var combo = $find(comboId); if (combo != null) { alert('Found ComboBox'); var items = combo.get_items(); if (items != null) { alert('Found Items'); alert('Num Items: ' + items.length); } else { alert('NOT Found Items'); } } else { alert('NOT Found ComboBox'); }public void InstantiateIn(Control container){ chkBox = new CheckBox(); chkBox.ID = string.Format("msChk_{0}", Column); RadComboBoxItem item = (container as RadComboBoxItem); RadComboBox box = (item.Owner as RadComboBox); string _onClick = ""; _onClick = string.Format("onCheckBoxClick({0}, {1})", "this", box.ClientID.ToString()); chkBox.Attributes.Add("onclick", _onClick); chkBox.Text = item.Text; container.Controls.Add(chkBox);}
Thank you for your assistance
Tracy
Private Sub rgvDataExceptions_DetailTableDataBind(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridDetailTableDataBindEventArgs) Handles rgvDataExceptions.DetailTableDataBind Dim SelectedRow As GridDataItem = CType(e.DetailTableView.ParentItem, GridDataItem) Dim intException As Int32 = SelectedRow.GetDataKeyValue("ExceptionID") Dim detailTable As GridTableView = DirectCast(SelectedRow.ChildItem.NestedTableViews(0), GridTableView) SQLDS_DataExceptionsMessage.SelectParameters.Clear() SQLDS_DataExceptionsMessage.SelectParameters.Add("intExceptionId", intException) e.DetailTableView.DataSource = SQLDS_DataExceptionsMessage 'Get value from master table row Dim strExceptionMessage As String = SelectedRow("ExceptionMessage").Text
I would then like to set the bltExceptionMessage,which is a bulled list that is in a template column of the details view
'Dim bltMessages As BulletedList = DirectCast(SelectedRow.FindControl("bltExceptionMessage"), BulletedList) 'Dim aryMessages As New ArrayList 'aryMessages.AddRange(Split(strExceptionMessage, "~")) 'bltMessages.DataSource = aryMessages 'bltMessages.DataBind() End Sub
function openPromoteWindows(RadWindowManagerId) { var oManager = $find(RadWindowManagerId); var oWindows = oManager.GetWindows(); for (i = 0; i < oWindows.length; i++) { var oWindow = oWindows[i]; oWindow.show(); oWindow.Minimize(); oWindow.get_popupElement().style.zIndex = 10000 + i; }}function rwmPromote_Close(sender, eventargs) { var rwm = $find(window['rwmPromoteId']); var oWindows = rwm.GetWindows(); var i; for (i = 0; i < oWindows.length; i++) { var oWindow = oWindows[i]; if (oWindow == sender) break; } if (i < oWindows.length) { rwm._windows.splice(i, 1); }}function rwmPromote_Close(sender, eventargs) { var rwm = $find(window['rwmPromoteId']); var hf = $get(window['hfWindowIdsId']); hf.value = ''; var oWindows = rwm.GetWindows(); var i; for (i = 0; i < oWindows.length; i++) { var oWindow = oWindows[i]; if (oWindow == sender) break; } if (i < oWindows.length) { rwm._windows.splice(i, 1); oWindows = rwm.GetWindows(); for (i = 0; i < oWindows.length; i++) { hf.value += oWindows[i].id + ','; } }}// At the conclusion of every postback hfWindowIds.Value = "";foreach (RadWindow rw in rwmPromote.Windows){ hfWindowIds.Value += rw.ClientID + ',';}// And then on the ValueChanged event for the HiddenField protected void hfWindowIds_ValueChanged(object sender, EventArgs e) { char[] sep = {','}; string[] WindowIds = ((HiddenField)sender).Value.Split(sep, StringSplitOptions.RemoveEmptyEntries); List<RadWindow> rwList = new List<RadWindow>(); foreach (RadWindow rw in rwmPromote.Windows) { if (!WindowIds.Contains(rw.ClientID)) rwList.Add(rw); // No longer open client side } foreach (RadWindow rw in rwList) rwmPromote.Windows.Remove(rw); // Remove each closed window } } <jha:RadGrid ID="grdVendors" runat="server" DataSourceID="odsVendors" OnItemDataBound="grdVendors_ItemDataBound" OnItemCommand="grdVendors_ItemCommand" OnExportCellFormatting="grdVendors_ExportCellFormatting" OnItemCreated="grdVendors_ItemCreated" OnPdfExporting="grdVendors_PdfExporting"> <MasterTableView DataKeyNames="VendorID"> <Columns> <telerik:GridBoundColumn HeaderText="ID" DataField="VendorID" Visible="false" /> <telerik:GridBoundColumn HeaderText="First Name" DataField="FirstName" /> <telerik:GridBoundColumn HeaderText="Last Name" DataField="LastName" /> <telerik:GridBoundColumn HeaderText="City" DataField="City" /> <telerik:GridBoundColumn HeaderText="State" DataField="State" ItemStyle-HorizontalAlign="Center" /> <telerik:GridBoundColumn UniqueName="CreatedOn" HeaderText="Created On" DataField="CreatedDateTime" DataFormatString="{0:MM/dd/yyyy}" ItemStyle-HorizontalAlign="Right" /> </Columns> </MasterTableView> </jha:RadGrid>protected void grdVendors_ItemCommand(object sender, GridCommandEventArgs e){ switch (e.CommandName) { case RadGrid.ExportToExcelCommandName: case RadGrid.ExportToPdfCommandName: grdVendors.CssClass = "export"; string title = "Foo"; GridExportSettings settings = grdVendors.ExportSettings; settings.ExportOnlyData = true; settings.OpenInNewWindow = true; settings.IgnorePaging = true; settings.HideStructureColumns = true; settings.FileName = string.Format("{0} {1:yyyy-MM-dd}", title, DateTime.Now); // PDF settings.Pdf.DefaultFontFamily = "Tahoma"; settings.Pdf.PageTitle = title; settings.Pdf.Title = title; settings.Pdf.AllowPrinting = true; settings.Pdf.AllowAdd = false; settings.Pdf.AllowCopy = true; settings.Pdf.AllowModify = false; settings.Pdf.PaperSize = GridPaperSize.A4; settings.Pdf.PageHeight = Unit.Parse("210mm"); settings.Pdf.PageWidth = Unit.Parse("297mm"); settings.Pdf.PageTopMargin = Unit.Parse("20mm"); settings.Pdf.PageHeaderMargin = Unit.Parse("10mm"); settings.Pdf.PageBottomMargin = Unit.Parse("10mm"); settings.Pdf.PageLeftMargin = Unit.Parse("10mm"); settings.Pdf.PageRightMargin = Unit.Parse("10mm"); break; }}protected void grdVendors_ExportCellFormatting(object sender, ExportCellFormattingEventArgs e){ /// Never fires when exporting to PDF switch (e.FormattedColumn.ItemStyle.HorizontalAlign) { case HorizontalAlign.Left: e.Cell.Style["text-align"] = "left"; break; case HorizontalAlign.Center: e.Cell.Style["text-align"] = "center"; break; case HorizontalAlign.Right: e.Cell.Style["text-align"] = "right"; break; } if (e.FormattedColumn.UniqueName == "PostalCode") e.Cell.Style["mso-number-format"] = @"\@";}protected void grdVendors_ItemCreated(object sender, GridItemEventArgs e){ if (grdVendors.CssClass.Contains("export")) { if (e.Item is GridDataItem) { foreach (TableCell cell in e.Item.Cells) { if (e.Item.ItemType == GridItemType.AlternatingItem) cell.Style["background-color"] = "#E6EFF7"; else cell.Style["background-color"] = "#FFFFFF"; } } else if (e.Item is GridHeaderItem) { Table table = e.Item.Parent.Parent as Table; table.Style["font-family"] = "Tahoma"; table.Style["font-size"] = "8pt"; foreach (TableCell cell in e.Item.Cells) { cell.Style["border-color"] = "#FFFFFF"; cell.Style["background-color"] = "#EEEEEE"; cell.Style["text-align"] = "left"; cell.Style["color"] = "#274777"; cell.Style["font-weight"] = "bold"; } } }}Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 1/25/2012 9:56:43 AM
Event time (UTC): 1/25/2012 2:56:43 PM
Event ID: 234287b000864dfeadd74c5105b467c8
Event sequence: 75
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/8/ROOT-1-129719554943999466
Trust level: Full
Application Virtual Path: /
Application Path: e:\inetpub\site
Machine name:
Process information:
Process ID: 12760
Process name: w3wp.exe
Account name:
Exception information:
Exception type: NullReferenceException
Exception message: Object reference not set to an instance of an object.
at Telerik.Web.UI.RadCompression.Compress(HttpApplication application)
at Telerik.Web.UI.RadCompression.PreRequestHandlerExecute(Object sender, EventArgs e)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)