When the grid loads, the rows in the MasterTableView aren't expanded, so no scrollbar appears. When the user expands the rows, the vertical scrollbar appears as expected. But, after a postback, the rows are still expanded and the scrollbar is gone. I've tried setting a scrollheight. I've tried having one column without a set width.
Here is my grid:
<telerik:RadGrid ID="rgUnits" runat="server" AllowSorting="True" AutoGenerateColumns="False" AllowAutomaticUpdates="True" AllowMultiRowSelection="True" Height="380px" Width="100%" OnPreRender="rgUnits_OnPreRender" OnItemCreated="rgUnits_ItemCreated" OnNeedDataSource="rgUnits_NeedDataSource" OnDetailTableDataBind="rgUnits_DetailTableDataBind"> <MasterTableView ShowHeadersWhenNoRecords="false" EnableNoRecordsTemplate="true" DataKeyNames="UnitId" ClientDataKeyNames="UnitId" AutoGenerateColumns="false" TableLayout="Fixed" ItemStyle-VerticalAlign="Top" AlternatingItemStyle-VerticalAlign="Top" HeaderStyle-HorizontalAlign="Center" AlternatingItemStyle-HorizontalAlign="Center" HierarchyDefaultExpanded="False" HierarchyLoadMode="Client"> <NoRecordsTemplate> <div class="text-warning text-center"> <p class="bg-warning padme10 ">There are no acreage lines associated with the selected item.</p> </div> </NoRecordsTemplate> <DetailTables> <telerik:GridTableView ShowHeadersWhenNoRecords="True" EnableNoRecordsTemplate="True" DataKeyNames="ReportingId" ClientDataKeyNames="ReportingId" AutoGenerateColumns="false" ItemStyle-VerticalAlign="Top" AlternatingItemStyle-VerticalAlign="Top" HeaderStyle-HorizontalAlign="Center" HierarchyLoadMode="ServerBind" Width="100%" CommandItemDisplay="bottom"> <CommandItemTemplate> <div class="padme5"> <asp:Button ID="btnAssignRemove" OnClick="btnAssignRemove_OnClick" CssClass="btn btn-default btn-link btn-sm" Text="Assign/Remove" runat="server"></asp:Button> <asp:Button ID="btnFeatureDefaultPlantDate" OnClick="btnFeatureDefaultPlantDate_OnClick" CssClass="pull-right btn btn-default btn-link btn-sm" Text="Default Plant Date" runat="server"></asp:Button> <asp:Button ID="btnFeaturePlantedAcres" OnClick="btnFeaturePlantedAcres_OnClick" CssClass="pull-right btn btn-default btn-link btn-sm margrt5" Text="Plant 100% of Acres" runat="server"></asp:Button> </div> </CommandItemTemplate> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="UnitId" MasterKeyField="UnitId"/> </ParentTableRelation> <Columns> <telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" ItemStyle-HorizontalAlign="Center"/> <telerik:GridCalculatedColumn HeaderText="Farm/Tract/Field" UniqueName="FarmTractField" DataFields="FarmNum,TractNum,FieldNum" ItemStyle-HorizontalAlign="Center" Expression='{0} + "/" + {1} + "/" + {2}'/> <telerik:GridBoundColumn DataField="DisplayAcres" DataFormatString="{0:F2}" HeaderText="CLU Acres" UniqueName="DisplayAcres" ItemStyle-HorizontalAlign="Right"/> <telerik:GridTemplateColumn UniqueName="PlantedAcres" HeaderText="Planted Acres" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <telerik:RadNumericTextBox ID="txtPlantedAcres" UniqueName="txtPlantedAcres" CssClass="form-control inline-form input-xs" DbValue='<%#Bind("PlantedAcres") %>' OnTextChanged="txtPlantedAcres_OnTextChanged" AutoPostBack="True" Type="number" Width="67px" runat="server" MinValue="0" MaxValue='<%# Convert.ToDouble(Eval("DisplayAcres")) %>'> </telerik:RadNumericTextBox> </div> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="PlantDate" DataField="PlantDate" HeaderText="Plant Date" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <telerik:RadDatePicker ID="rdpFeaturePlantDate" runat="server" DbSelectedDate='<%#Bind("PlantDate") %>' OnSelectedDateChanged="rdpFeaturePlantDate_OnSelectedDateChanged" AutoPostBack="True" Calendar-ShowRowHeaders="False" CssClass="inline-form input-date"/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Fid" UniqueName="Fid" Display="False"/> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridBoundColumn DataField="FormattedUnitNumber" HeaderText="Unit Number" UniqueName="FormattedUnitNumber" ItemStyle-Width="120px" HeaderStyle-Width="120px" ItemStyle-HorizontalAlign="Left"/> <telerik:GridBoundColumn DataField="CropName" HeaderText="Crop" UniqueName="Crop" ItemStyle-Width="63px" HeaderStyle-Width="63px" ItemStyle-HorizontalAlign="Center"/> <telerik:GridBoundColumn DataField="CommodityTypeName" HeaderText="Type" UniqueName="Type" ItemStyle-Width="132px" HeaderStyle-Width="132px" ItemStyle-HorizontalAlign="Center"/> <telerik:GridBoundColumn DataField="PracticeName" HeaderText="Practice" UniqueName="Practice" ItemStyle-Width="69px" HeaderStyle-Width="69px" ItemStyle-HorizontalAlign="Center"/> <telerik:GridTemplateColumn UniqueName="Shareholders" HeaderText="Share- Holders" HeaderStyle-Width="60px" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <telerik:RadScriptBlock ID="rsbScript" runat="server"> <script type="text/javascript"> $(document).ready(function () { $(function () { $('[data-toggle="popover"]').popover() }) }); </script> </telerik:RadScriptBlock> <a href="javascript:void(0);" data-toggle="popover" data-placement="left" data-trigger="hover" title="Shareholders" data-html="true" data-content='<%# Eval("OtherShareholder") %>'>View</a> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="SharePercent" HeaderText="Share %" HeaderStyle-Width="71px" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <div class="form-inline"> <telerik:RadNumericTextBox ID="txtSharePercent" DbValue='<%#Bind("SharePercent") %>' OnTextChanged="txtSharePercent_OnTextChanged" AutoPostBack="True" CssClass="form-control inline-form" Type="number" width="60px" runat="server" MaxValue="100" MinValue="1"> </telerik:RadNumericTextBox> </div> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="PPLP" HeaderText="PP/LP" HeaderStyle-Width="78px" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:DropDownList runat="server" ID="ddlAcreageType" CssClass="form-control inline-form input-xs" SelectedValue='<%# Bind("AcreageType") %>' OnSelectedIndexChanged="ddlAcreageType_OnSelectedIndexChanged" AutoPostBack="True"> <asp:ListItem Value="None" Text="None"></asp:ListItem> <asp:ListItem Value="PreventedPlanting" Text="PP"></asp:ListItem> <asp:ListItem Value="LatePlanting" Text="LP"></asp:ListItem> </asp:DropDownList> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="PlantedAcres" HeaderText="Planted Acres" HeaderStyle-Width="90px" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <div class="form-inline"> <telerik:RadNumericTextBox ID="txtPlantedAcres" ReadOnly="True" CssClass="form-control inline-form input-xs" Type="number" Width="67px" runat="server"> </telerik:RadNumericTextBox> </div> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="PlantDate" HeaderText="Plant Date" DataField="PlantDate" HeaderStyle-Width="114px" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <telerik:RadDatePicker ID="rdpUnitPlantDate" DbSelectedDate='<%#Bind("PlantDate") %>' OnSelectedDateChanged="rdpUnitPlantDate_OnSelectedDateChanged" AutoPostBack="True" runat="server" Calendar-ShowRowHeaders="False" CssClass="inline-form input-date"/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="Actions" HeaderText="Actions" HeaderStyle-Width="55px" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <div class="dropdown"> <a href="#" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <i class="fa fa-cog fa-lg"></i> </a> <ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenu1"> <li> <asp:LinkButton ID="lnkDeleteCopy" runat="server" OnClientClick='<%# "lnkDeleteCopy_ClientClicked("+ Eval("UnitId") + ");" %>'>Delete Copy</asp:LinkButton> </li> <li> <asp:LinkButton ID="lnkCopyUnit" runat="server" OnClientClick='<%# "lnkCopyUnit_ClientClicked("+ Eval("UnitId") + "); return false;" %>'>Copy Unit</asp:LinkButton> </li> <li> <asp:LinkButton ID="lnkPlantedAcres100" runat="server" OnClick="lnkPlantedAcres100_OnClick">Planted Acres 100%</asp:LinkButton> </li> <li> <asp:LinkButton ID="lnkDefaultPlantDate" runat="server" OnClick="lnkDefaultPlantDate_OnClick">Default Plant Date</asp:LinkButton> </li> </ul> </div> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="IsCopy" UniqueName="IsCopy" Display="False"/> </Columns> </MasterTableView> <ClientSettings EnableRowHoverStyle="true" ClientEvents-OnRowSelected="rgUnits_OnRowSelected" AllowExpandCollapse="True"> <Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="true" ScrollHeight="350px"></Scrolling> <Selecting AllowRowSelect="True"></Selecting> </ClientSettings> </telerik:RadGrid>
Hello,
I'm trying to export the contents of a RadGrid that has a child RadGrid in its NestedViewTemplate to Excel format. I've found some examples on how to export the contents of a RadGrid to Excel, however, those examples only seem to export the parent radgrid's contents and not the child content. Is there a way to do this? An example would be very much appreciated. Thanks.
Here's my code for the RadGrid:
<telerik:RadButton ID="btnExportToExcel" runat="server" Text="Export to Excel" OnClick="btnExportToExcel_Click"></telerik:RadButton> <telerik:RadGrid ID="grdViewInventory" runat="server" AutoGenerateColumns="False" AllowPaging="false" AllowSorting="false" OnColumnCreated="grdViewInventory_ColumnCreated" OnNeedDataSource="grdViewInventory_NeedDataSource" Skin="Metro" ShowHeader="false" ShowFooter="false" CssClass="IV_MasterGrid" CellPadding="0" CellSpacing="0"> <MasterTableView HierarchyDefaultExpanded="true" HierarchyLoadMode="ServerOnDemand" EnableNoRecordsTemplate="true" ShowHeadersWhenNoRecords="true" DataKeyNames="DataKey" RetainExpandStateOnRebind="true"> <NoRecordsTemplate> <div class="div_NoRecordsTemplate">No Components Found.</div> </NoRecordsTemplate> <NestedViewSettings> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="DataKey" MasterKeyField="DataKey" /> </ParentTableRelation> </NestedViewSettings> <NestedViewTemplate> <telerik:RadGrid ID="rgNestedViewInventory" runat="server" AutoGenerateColumns="false" Width="99.5%" CssClass="IV_NestedGrid" OnNeedDataSource="rgNestedViewInventory_NeedDataSource"> <MasterTableView EnableNoRecordsTemplate="true" ShowHeadersWhenNoRecords="true" TableLayout="Fixed"> <Columns> <telerik:GridBoundColumn DataField="FilterType" HeaderText="Filter Type" ReadOnly="True" UniqueName="FilterType"> <HeaderStyle CssClass="IV_FT_Nested" Wrap="false" /> <ItemStyle CssClass="IV_FT_Nested" Wrap="false" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ModelNumber" HeaderText="Model Number" ReadOnly="True" UniqueName="ModelNumber"> <HeaderStyle CssClass="IV_MN_Nested" Wrap="false" /> <ItemStyle CssClass="IV_MN_Nested" Wrap="false" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="PartNumber" HeaderText="Part Number" ReadOnly="True" UniqueName="PartNumber"> <HeaderStyle CssClass="IV_PN_Nested" Wrap="false" /> <ItemStyle CssClass="IV_PN_Nested" Wrap="false" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FilterDimension" HeaderText="Filter Size" ReadOnly="True" UniqueName="FilterDimension"> <HeaderStyle CssClass="IV_FDE_Nested" Wrap="false" /> <ItemStyle CssClass="IV_FDE_Nested" Wrap="false" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Quantity" HeaderText="Quantity" ReadOnly="True" UniqueName="FilterManufacturer"> <HeaderStyle CssClass="IV_QTY_Nested" Wrap="false" /> <ItemStyle CssClass="IV_QTY_Nested" Wrap="false" /> </telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid> </NestedViewTemplate> <Columns> <telerik:GridTemplateColumn UniqueName="GroupHeaderColumn" Resizable="false" SortExpression="PropertyNumber"> <ItemTemplate> <asp:Label runat="server" ID="Label1" Text='<%# Eval("Building") %>' /> <asp:Label runat="server" ID="Label2" Text='<%# " - (" + Eval("PropertyNumber") + ") - " %>' /> <asp:Label runat="server" ID="Label4" Text='<%# Eval("UnitTag") %>' /> <asp:Label runat="server" ID="Label3" Text='<%# " - " + Eval("AHUType") %>' /> <asp:Label runat="server" ID="Label5" Text='<%# " - " + Eval("Configuration") %>' /> </ItemTemplate> <ItemStyle CssClass="IV_MasterGrid_GroupHeader" /> </telerik:GridTemplateColumn> </Columns> </MasterTableView></telerik:RadGrid>
Here's my C# code-behind:
protected void grdViewInventory_NeedDataSource(object sender, GridNeedDataSourceEventArgs e){ siteID = ApplicationDTO.GetSiteID(); grdViewInventory.DataSource = BLL.GetInventoryHeader(siteID).GroupBy(x => x.DataKey).Select(y => y.First()).OrderBy(z => z.Building);}protected void grdViewInventory_ColumnCreated(object sender, GridColumnCreatedEventArgs e){ //Hides the expand/collapse column if (e.Column is GridExpandColumn) { e.Column.Visible = false; }}protected void btnExportToExcel_Click(object sender, EventArgs e){ grdViewInventory.ExportSettings.OpenInNewWindow = true; grdViewInventory.ExportSettings.ExportOnlyData = true; grdViewInventory.ExportSettings.IgnorePaging = true; grdViewInventory.ExportSettings.Excel.Format = GridExcelExportFormat.Xlsx; grdViewInventory.MasterTableView.Items[0].Expanded = true; RadGrid rgNestedViewInventory = (RadGrid)grdViewInventory.MasterTableView.Items[0].ChildItem.FindControl("rgNestedViewInventory"); rgNestedViewInventory.Rebind(); grdViewInventory.MasterTableView.HierarchyDefaultExpanded = true; grdViewInventory.MasterTableView.ExportToExcel();}protected void rgNestedViewInventory_NeedDataSource(object sender, GridNeedDataSourceEventArgs e){ RadGrid rgChild = (RadGrid)sender; GridNestedViewItem nesteditem = (GridNestedViewItem)rgChild.NamingContainer; string dataKey = Convert.ToString(nesteditem.ParentItem.GetDataKeyValue("DataKey")); (sender as RadGrid).DataSource = BLL.GetInventory(siteID).Where(x => x.DataKey == dataKey).OrderBy(y => y.PropertyNumber);}I've been spoiled by GridView!
I have need for something simpler, just basic 2-column lists, no paging, no complex templating, just a list with scrolling as needed.
The attached graphic shows an approximation of what I need. I manipulated height and width settings and was partially successful in creating an outline, but as you can see, instead of scrollbars I get overflow.
I am thinking that maybe I need to embed the ListView control inside a panel or other object to force scrollbars, but then presume the headings themselves will also scroll out of view.
Question 1) is there a better RAD AJAX control?
Question 2) why to the height and width settings have very little effect on this control, when they are spectacular with GridView?
<telerik:RadListView ID="RadListView1" runat="server" DataSourceID="publication_date_summary" BorderColor="#3399FF" BorderStyle="Solid" BorderWidth="2px" Height="200px" Skin="Metro" Width="300px"><LayoutTemplate> <div class="RadListView RadListView_Metro" style="max-width:140px; max-height:300px;"> <table cellspacing="0""> <thead> <tr class="rlvHeader"> <th style="width:100px;">Decade</th> <th style="width:40px;">Songs</th> </tr> </thead> <tbody> <tr id="itemPlaceholder" runat="server"> </tr> </tbody> </table> </div></LayoutTemplate> <ItemTemplate> <tr class="rlvI"> <td><%-- <asp:Label ID="NameLabel" runat="server" Text='<%# Eval("Name") %>' />--%> <a href='selector.aspx?class_id=5&filter=decade&decade=<%# Eval("pub_date")%>' target="_parent"><%# Eval("pub_date") %></a> </td> <td> <asp:Label ID="CountOfIDLabel" runat="server" Text='<%# Eval("songs") %>' /> </td> </tr> </ItemTemplate> <EmptyDataTemplate> <div class="RadListView RadListView_MetroTouch"> <div class="rlvEmpty"> There are no items to be displayed.</div> </div> </EmptyDataTemplate> </telerik:RadListView>
Inside the ItemsRequested Event of a RadComboBox we are using the value from a RadTextBox as part of the search criteria to load the RadComboxBox. When the code runs the text entered in the RadTextBox cannot be seen in the ItemsRequested event.
It looks like some JavaScript is need to record the value of the textbox when it is first entered on the client side so that it can be accessed on the server side. I was wondering what is the best way to do that. Should I put the value into a hidden field or some other variable?
Thanks
First of all, any help is greatly appreciated.
Currently we are having issues with radwindow performance. It is taking about 5 to 10 seconds in IE browser to open a radwindow. It is rather quick in chrome. Everything is bound on client side with an ajax manager to bind some telerik grids and occasionally custom page method post backs. I was wondering if there was a setting for rad windows to open up faster. Right at dlg.show() and dlg.center() is where it takes about 5 to 6 seconds. Why is this?
showMaterialsEditorDialog: function (data) { var control = this; this._selectedProject = data; this._projectStatusId = data.ProjectStatusId; var dlg = document.getElementById(this._windowId).control; var width = $telerik.$(window).width() * 90 / 100; var height = $telerik.$(window).height() * 90 / 100; dlg.set_height(height); dlg.set_width(width); var header = data.CustomerName + ' (' + data.ProjectName + ' - ' + data.ProjectId + ')'; var subHeader = data.CustomerName + ' (' + data.CustomerNo + ') - ' + data.BranchName + ' - ' + data.BusinessUnitDescription + ' (' + data.BusinessUnitCode + ')'; var header = document.getElementsByClassName('addNewProjectHeader') for (var i = 0; i < header.length; i++) { header[i].innerHTML = header; } var subHeaderElement = document.getElementsByClassName('addNewProjectHeader') for (var i = 0; i < subHeaderElement.length; i++) { subHeaderElement[i].innerHTML = subHeader; } // $('.addNewProjectSubHeader').html(subHeader); dlg.show(); dlg.center(); var pickListLink = $(dlg.get_contentElement().querySelector('.pickListButton'));//.find('.pickListButton'); pickListLink.off().on('click', function () { if (control._unplannedMaterials.length == 0 && control._plannedMaterials.length == 0) { radalert('This project has no materials assigned.'); } else { __doPostBack('pickList', data.ProjectStatusId); } }); var restockListLink = $(dlg.get_contentElement().querySelector('.restockListButton'));//.find('.pickListButton'); restockListLink.off().on('click', function () { if (control._unplannedMaterials.length == 0 && control._plannedMaterials.length == 0) { radalert('This project has no materials assigned.'); } else { __doPostBack('restockList', data.ProjectStatusId); } }); debugger; this._rebindProject(); },Here is the asp.net information:
<telerik:RadWindow ID="MaterialsEditorWindow" class="windowMaterials" ShowContentDuringLoad="false" AutoSize="false" DestroyOnClose="true" VisibleOnPageLoad="false" Behaviors="Close" Height="800px" Modal="true" Width="1824" runat="server"> <ContentTemplate > <telerik:RadAjaxLoadingPanel ID="DialogLoadingPanel" Skin="Default" runat="server"></telerik:RadAjaxLoadingPanel> <div class="addShiftHeaderContainer"> <div class="addNewProjectHeader"></div> <div class="addNewProjectSubHeader"></div> </div> <div class="buttonWrapper mtop10px"> <button type="button" style="display: none;" class="imgButton projectSaveButton inventoryButton"> <em class="imgHolder"></em>Save Inventory</button> <button type="button" class="pickListButton inventoryButton">Pick List</button> <button type="button" class="restockListButton inventoryButton">Restock List</button> <button type="button" class="projectCancelButton inventoryButton"> Cancel</button> <button type="button" class="projectHasBeenFilledButton inventoryButton" style="float:right; display:none;" disabled="disabled"> Send To Filled</button> <button type="button" class="projectUnfillButton inventoryButton" style="float:right !important; display:none;" disabled="disabled"> Send To Unfill</button> <button type="button" class="projectRestockButton inventoryButton" style="float:right !important; display:none;" disabled="disabled"> Send To Restock</button> </div> <div class="inventoryContentHeader">Materials</div> <telerik:RadCodeBlock runat="server"> <a href="#" onclick="$find('<%= this.InventoryContainer.ClientID %>').expandAllPlanned(); return false;">Expand All</a> <a href="#" onclick="$find('<%= this.InventoryContainer.ClientID %>').collapseAllPlanned(); return false;">Collapse All</a> <a href="#" class="markAllComplete" style="display: none;" onclick="$find('<%= this.InventoryContainer.ClientID %>').markAllComplete(); return false;">Mark All Completed</a> </telerik:RadCodeBlock> <table class="equipPersonnelChangeInfo" border="0"> <tr> <td><b>Last Equipment Change:</b></td> <td><span id="spnLastEquipChange" class="lastEquipChange" runat="server"></span></td> </tr> <tr> <td><b>Last Personnel Change:</b></td> <td><span id="spnLastPersonnelChange" class="lastPersonnelChange" runat="server"></span></td> </tr> <tr> <td><b>Last Miscellaneous Change:</b></td> <td><span id="spnLastMiscellaneousChange" class="lastMiscellaneousChange" runat="server"></span></td> </tr> </table> <asp:HiddenField ID="hdnPlannedMaterialsData" runat="server" /> <asp:HiddenField ID="hdnAjaxRequestField" ClientIDMode="Static" runat="server" /> <telerik:RadGrid ID="MaterialsGrid" EnableViewState="false" CssClass="plannedGrid" runat="server" AutoGenerateColumns="false" AllowPaging="false" Skin="Default"> <MasterTableView HierarchyLoadMode="Client" runat="server" NoDetailRecordsText="No actual materials have been added for this planned item."> <Columns> <telerik:GridTemplateColumn ItemStyle-CssClass="smallColumn"> <ItemTemplate> <a href="javascript: void(0);" class="addActualButton" style="display: none;" id="hypAdd" runat="server">Add</a> </ItemTemplate> <ClientItemTemplate> <a href="javascript: void(0);" class="addActualButton" style="display: none;" id="hypAdd" runat="server">Add</a> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="ItemNo" HeaderText="Item Number"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="MaterialFullName" HeaderText="Material Name"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="DesiredQuantity" HeaderText="Desired Quantity"></telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Actual Quantity"> <ClientItemTemplate> <span class="actualQuantity"></span> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="QuantityOnSite" HeaderText="Quantity On-Site"></telerik:GridBoundColumn> </Columns> <NestedViewTemplate> <input type="hidden" name="parentIndex" /> <telerik:RadGrid ID="AssignedActualMaterialsGrid" AllowPaging="false" EnableViewState="false" CssClass="plannedActualGrid" runat="server" Width="90%" OnItemDataBound="MaterialsGrid_ItemDataBound" AutoGenerateColumns="false" Skin="Windows7"> <MasterTableView HierarchyDefaultExpanded="true" AllowPaging="false" EnableColumnsViewState="false" HierarchyLoadMode="Client"> <Columns> <telerik:GridTemplateColumn ItemStyle-CssClass="smallColumn"> <ItemTemplate> <a href="#" class="removeActualButton" style="display: none;">Remove</a> </ItemTemplate> <ClientItemTemplate> <a href="javascript: void(0);" class="removeActualButton" style="display: none;">Remove</a> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="OriginialUOMId" Display="false"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="OriginialBusinessUnitId" Display="false"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="OriginialBusinessUnitCode" Display="false"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ItemNo" ItemStyle-CssClass="mediumColumn" HeaderText="Item Number"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FullName" HeaderText="Description"></telerik:GridBoundColumn> <telerik:GridTemplateColumn ItemStyle-Width="100" HeaderText="Unit of Measure"> <ClientItemTemplate> <select class="uomDropdown" style="width: 50px;" disabled="disabled"></select> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Business Unit"> <ClientItemTemplate> <select class="buDropdown" disabled="disabled"></select> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderStyle-CssClass="binLocationDropDownHeader" HeaderText="Bins/Locations"> <ClientItemTemplate> <select class="buBinLocationDropdown" disabled="disabled"></select> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn ItemStyle-CssClass="smallColumn" HeaderText="Quantity"> <ItemTemplate> <asp:TextBox ID="Qty" disabled="disabled" Columns="3" MaxLength="6" onkeypress="return isNumericKey(event);" CssClass="qty" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn ItemStyle-CssClass="smallColumn qtyReturnedItem" HeaderStyle-CssClass="qtyReturnedHeader" HeaderText="Quantity Returned"> <ItemTemplate> <asp:TextBox ID="QtyReturned" disabled="disabled" Columns="3" MaxLength="6" Text="0" onkeypress="return isNumericKey(event);" CssClass="qtyReturned" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Complete?"> <ItemTemplate> <input type="checkbox" id="chkComplete" disabled="disabled" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Split Item" ItemStyle-CssClass="splitItemGrid" HeaderStyle-CssClass="splitItemHeader"> <ItemTemplate> <a href="#" class="splitItem" style="display: none;">Split Item</a> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings ClientEvents-OnCommand="function(){}" AllowExpandCollapse="true"> <DataBinding ShowEmptyRowsOnLoad="false"></DataBinding> </ClientSettings> </telerik:RadGrid> </NestedViewTemplate> </MasterTableView> <ClientSettings ClientEvents-OnCommand="function(){}" EnableAlternatingItems="false"> <DataBinding ShowEmptyRowsOnLoad="false"></DataBinding> <Selecting AllowRowSelect="true" /> </ClientSettings> </telerik:RadGrid> <div id="PlannedMaterialsPickerContainer" class="materialPickerContainer plannedMaterialsPickerContainer" runat="server"> <uc1:ActualMaterialPicker ID="PlannedMaterialsMaterialPicker" ReturnUnplannedMaterials="false" runat="server" /> </div> <div id="NewMaterialRequest" class="mtop10px" runat="server"> <div class="inventoryContentHeader" style="clear: both;">New Material Request</div> <telerik:RadGrid ID="NewMaterialRequestGrid" PageSize="100" EnableViewState="false" runat="server" AutoGenerateColumns="false"> <MasterTableView AllowPaging="true" runat="server"> <Columns> <telerik:GridTemplateColumn ItemStyle-CssClass="smallColumn"> <ItemTemplate> <a href="#" class="removePlanButton" style="display: none;">Remove</a> </ItemTemplate> <ClientItemTemplate> <a href="javascript: void(0);" class="removePlanButton" style="display: none;">Remove</a> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="TaskItemPlanMiscName" HeaderText="New Material Request"></telerik:GridBoundColumn> <telerik:GridTemplateColumn DataField="Quantity" HeaderText="Quantity"> <ItemTemplate> <asp:TextBox ID="txtQty" disabled="disabled" onkeypress="return isNumericKey(event);" Columns="3" CssClass="qtyNewRequest" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Comments" HeaderStyle-Width="300"> <ClientItemTemplate> <input Type="Text" ID="txtNotes" disabled="disabled" class="notesMaterialRequest" style="Width: 300px;" maxlength="200" ></input> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Complete?"> <ItemTemplate> <input type="checkbox" id="chkComplete" disabled="disabled" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings ClientEvents-OnCommand="function(){}"> <DataBinding ShowEmptyRowsOnLoad="false"></DataBinding> </ClientSettings> </telerik:RadGrid> </div> <div id="AddtlMaterialsContainer" class="mtop10px" runat="server"> <div class="inventoryContentHeader" style="clear: both;">Additional Materials</div> <telerik:RadGrid ID="AdditionalMaterialsGrid" PageSize="999" EnableViewState="false" runat="server" AutoGenerateColumns="false"> <MasterTableView runat="server" AllowPaging="true" HierarchyLoadMode="Client" NoDetailRecordsText="No actual materials have been added for this planned item."> <Columns> <telerik:GridTemplateColumn> <ItemTemplate> <a href="javascript: void(0);" class="removeActualButton" style="display: none;">Remove</a> </ItemTemplate> <ClientItemTemplate> <a href="javascript: void(0);" class="removeActualButton" style="display: none;">Remove</a> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="MaterialId" Display="false"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="OriginialUOMId" Display="false"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="OriginialBusinessUnitId" Display="false"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="OriginialBusinessUnitCode" Display="false"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ItemNo" HeaderText="Item Number"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FullName" HeaderText="Description"></telerik:GridBoundColumn> <telerik:GridTemplateColumn HeaderText="Unit of Measure"> <ClientItemTemplate> <select class="uomDropdown" disabled="disabled"></select> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Business Unit"> <ClientItemTemplate> <select class="buDropdown" disabled="disabled"></select> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderStyle-CssClass="binLocationDropDownHeader" HeaderText="Bins/Locations"> <ClientItemTemplate> <select class="buBinLocationDropdown" disabled="disabled"></select> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Quantity"> <ClientItemTemplate> <input type="text" id="txtQty" disabled="disabled" onkeypress="return isNumericKey(event);" maxlength="6" style="width: 40px" class="qty" runat="server" /> <%--<asp:TextBox ID="txtQty" disabled="disabled" onkeypress="return isNumericKey(event);" Columns="3" CssClass="qty" />--%> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn ItemStyle-CssClass="smallColumn qtyReturnedItem" HeaderStyle-CssClass="qtyReturnedHeader" HeaderText="Quantity Returned"> <ItemTemplate> <asp:TextBox ID="QtyReturned" disabled="disabled" Columns="3" MaxLength="6" Text="0" onkeypress="return isNumericKey(event);" CssClass="qtyReturned" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Complete?" Display="true"> <ClientItemTemplate> <input type="checkbox" id="chkComplete" disabled="disabled" runat="server" /> </ClientItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Split Item" ItemStyle-CssClass="splitItemGrid" HeaderStyle-CssClass="splitItemHeader"> <ItemTemplate> <a href="#" class="splitItem" style="display: none;">Split Item</a> </ItemTemplate> <ClientItemTemplate> <a href="javascript: void(0);" class="splitItem" style="display: none;">Split Item</a> </ClientItemTemplate> <%--<ClientItemTemplate> <button class="splitItem" onclick="return false" disabled="disabled" runat="server">Split Item</button> </ClientItemTemplate>--%> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings ClientEvents-OnCommand="function(){}"> <DataBinding ShowEmptyRowsOnLoad="false"></DataBinding> </ClientSettings> </telerik:RadGrid> <div id="AddUnplannedMaterialsLinkContainer" runat="server"> <a href="#" style="display: none;" class="addUnplannedLink" onclick="$find('<%= this.InventoryContainer.ClientID %>')._showUnplannedMaterialsPicker(); return false;">Add Additional Materials</a> </div> <div class="materialPickerContainer"> <uc1:ActualMaterialPicker ID="addtlMaterialsActualPicker" ReturnUnplannedMaterials="true" runat="server"></uc1:ActualMaterialPicker> </div> </div> <div class="horizCenter"> <div id="MiscContainer" class="floatLeft" style="width: 100%;" runat="server"> <div class="shiftContentHeader" style="clear: both;">Miscellaneous</div> <telerik:RadGrid ID="radMiscGrid" runat="server"></telerik:RadGrid> </div> </div> <br /> <div class="horizCenter"> <div id="PersonnelContainer" class="floatLeft" style="width: 49%;" runat="server"> <div class="shiftContentHeader" style="clear: both;">Personnel</div> <telerik:RadGrid ID="radPersonnelGrid" runat="server"></telerik:RadGrid> </div> <div id="EquipmentContainer" class="floatLeft mleft20px" style="width: 49%;" runat="server"> <div class="shiftContentHeader" style="clear: both;">Equipment</div> <telerik:RadGrid ID="radEquipmentGrid" runat="server"></telerik:RadGrid> </div> <div class="cleared"></div> </div> <div id="MaterialNotesContainers" class="cleared mtop20px" runat="server"> <uc1:ProjectNoteEditor ID="ucNoteEditor" DisableEditing="true" HeaderClass="inventoryContentHeader" ClockNumber="111111" NoteType="MaterialsNotes" runat="server"></uc1:ProjectNoteEditor> </div> <div class="buttonWrapper cleared floatLeft mtop20px"> <button type="button" id="projectSaveButton" style="display: none;" class="imgButton projectSaveButton"> <em class="imgHolder"></em>Save Inventory</button> <button type="button" class="pickListButton">Pick List</button> <button type="button" class="restockListButton inventoryButton">Restock List</button> <button type="button" id="projectCancelButton" class="projectCancelButton"> Cancel</button> </div> </ContentTemplate> </telerik:RadWindow>
I have a grid that is in batch edit mode and I'm including the ability to mass update the current filtered view. What I can't seem to get to work is the addition of the css class k-dirty-cell to those changed cells and even the previously adjusted batch edit cells lose their red triangle as well. Any ideas?
The grid:
@(Html.Kendo().Grid<AELIS3.ShuttleCust.Entities.ActivePlan>()
.Name("ActivePlan")
.Columns(columns =>
{
columns.Bound(p => p.Account)
.Filterable(filterable => filterable.UI("accountFilter").Extra(false))
.Width(100);
columns.Bound(p => p.Origin)
.Filterable(filterable => filterable.UI("originFilter").Extra(false))
.Width(85);
columns.Bound(p => p.CustomerName)
.Filterable(filterable => filterable.UI("customerFilter").Extra(false))
.Width(250);
columns.Bound(p => p.City)
.Filterable(filterable => filterable.UI("citiesFilter").Extra(false))
.Width(125);
columns.Bound(p => p.State)
.Filterable(filterable => filterable.UI("statesFilter").Extra(false))
.Width(85);
columns.Bound(p => p.Sun)
.Filterable(filterable => filterable.UI("warehouseFilter").Extra(false))
.ClientTemplate("#if(SunLock === true){#<span class='red'>#: Sun #</span>#} else {#<span class='black'>#: Sun#</span>#}#")
.EditorTemplateName("_WRHS_Sunday");
columns.Bound(p => p.Mon)
.Filterable(filterable => filterable.UI("warehouseFilter").Extra(false))
.ClientTemplate("#if(MonLock === true){#<span class='red'>#: Mon #</span>#} else {#<span class='black'>#: Mon#</span>#}#")
.EditorTemplateName("_WRHS_Monday");
columns.Bound(p => p.Tue)
.Filterable(filterable => filterable.UI("warehouseFilter").Extra(false))
.ClientTemplate("#if(TueLock === true){#<span class='red'>#: Tue #</span>#} else {#<span class='black'>#: Tue#</span>#}#")
.EditorTemplateName("_WRHS_Tuesday");
columns.Bound(p => p.Wed)
.Filterable(filterable => filterable.UI("warehouseFilter").Extra(false))
.ClientTemplate("#if(WedLock === true){#<span class='red'>#: Wed #</span>#} else {#<span class='black'>#: Wed#</span>#}#")
.EditorTemplateName("_WRHS_Wednesday");
columns.Bound(p => p.Thu)
.Filterable(filterable => filterable.UI("warehouseFilter").Extra(false))
.ClientTemplate("#if(ThuLock === true){#<span class='red'>#: Thu #</span>#} else {#<span class='black'>#: Thu#</span>#}#")
.EditorTemplateName("_WRHS_Thursday");
columns.Bound(p => p.Fri)
.Filterable(filterable => filterable.UI("warehouseFilter").Extra(false))
.ClientTemplate("#if(FriLock === true){#<span class='red'>#: Fri #</span>#} else {#<span class='black'>#: Fri#</span>#}#")
.EditorTemplateName("_WRHS_Friday");
columns.Bound(p => p.Sat)
.Filterable(filterable => filterable.UI("warehouseFilter").Extra(false))
.ClientTemplate("#if(SatLock === true){#<span class='red'>#: Sat #</span>#} else {#<span class='black'>#: Sat#</span>#}#")
.EditorTemplateName("_WRHS_Saturday");
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.PageSize(18)
.Group(groups => groups.Add(p => p.WeekBegin))
.Read(read => read.Action("ActivePlan_Read", "ShuttleCustomer").Data("weekReturn"))
.Update(update => update.Action("ActivePlan_Update", "ShuttleCustomer"))
.Model(model =>
{
model.Id(p => p.AccountID);
model.Field(p => p.Account).Editable(false);
model.Field(p => p.Origin).Editable(false);
model.Field(p => p.CustomerName).Editable(false);
model.Field(p => p.City).Editable(false);
model.Field(p => p.State).Editable(false);
model.Field(p => p.WeekBegin).Editable(false);
model.Field(p => p.WeekNo).Editable(false);
model.Field(p => p.Sun).Editable(true);
model.Field(p => p.SunLock).Editable(false);
model.Field(p => p.Mon).Editable(true);
model.Field(p => p.MonLock).Editable(false);
model.Field(p => p.Tue).Editable(true);
model.Field(p => p.TueLock).Editable(false);
model.Field(p => p.Wed).Editable(true);
model.Field(p => p.WedLock).Editable(false);
model.Field(p => p.Thu).Editable(true);
model.Field(p => p.ThuLock).Editable(false);
model.Field(p => p.Fri).Editable(true);
model.Field(p => p.FriLock).Editable(false);
model.Field(p => p.Sat).Editable(true);
model.Field(p => p.SatLock).Editable(false);
})
)
.Pageable(pageable => pageable.ButtonCount(5))
.Events(e => e.FilterMenuInit("FilterMenuFunc"))
.ToolBar(toolbar => {
toolbar.Save();
})
.Selectable(selectable => selectable.Mode(GridSelectionMode.Multiple))
.Filterable(filtering => filtering.Enabled(true))
.Groupable(grouping => grouping.Enabled(true))
.Sortable(sorting => sorting.Enabled(true))
.Scrollable(scrolling => scrolling.Enabled(true).Height("auto"))
)
The mass batch update function:
function iterateAll()
{
var col = document.getElementById('dow').value;
var value = document.getElementById('warehouses').value;
var grid = $('#ActivePlan').data('kendoGrid');
grid.select(grid.tbody.find(">tr"));
var selected = grid.select();
var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
var colIdx = days.indexOf(col);
for (var i = 0, max = selected.length ; i < max ; i++) {
grid._data[i].set(col, value); //works perfects
grid.tbody.find('td:nth-child(' + (colIdx + 7) + ')').addClass('k-dirty-cell'); //I can add other classes here but they're only temporary additions and the k-dirty-cell doesn't work at all
}
}
Is there a way of setting minor tick count on YAxis?
I would like to increase minor tick count
We are using an older version of the Editor on an older ASP.NET application. The version number on the RadControls/Editor/Scripts directory says 7_3_6. I believe we determined that due to the older version of .NET that we are using, we cannot upgrade RadControls any further.
The behavior we are experiencing is that sometimes, when a use rclicks the Update button in the Editor dialogue, any HREFs in the editor window get changed from "path/to/file" or http://web.site/path/to/file to "about:path/to/file" or "about:path/to/this_application." Has anybody else seen this behavior, or have any idea what causes it? We can't reproduce it reliably and when it happens the only way to get it to stop is to restart the user's PC.
Thanks.
