Hi,
For most of the grids in our project, there are more than 35 columns,to minimize the time taken to load the grid, we are trying to use the gridpersister to save the settings for individual user, so that the user can customize the number of columns they want to see everytime.
Saving the grid setting data works fine. While loading the settings data in grid, the column header and data gets wrapped or clipped and sometimes some of the columns which is supposed to be visible are hidden and sometimes we cannot scroll to the end of grid and some columns at the end are clipped.
Below is the grid definition:
<telerik:RadGrid ID="RadReportGrid0" runat="server" AllowPaging="True" AutoSize="true" AllowSorting="True" DataSourceID="SqlDataSourceSearch" GridLines="None" Skin="Vista" AutoGenerateColumns="False" Width="99%" onitemcreated="RadReportGrid0_ItemCreated" EnableHeaderContextMenu="True" PageSize="20" onitemdatabound="RadReportGrid0_ItemDataBound" OnPageSizeChanged="RadReportGrid0_PageSizeChanged" oninit="RadReportGrid0_Init" AllowFilteringByColumn="false" GroupingEnabled = "false"> <headercontextmenu skin="Vista"> <collapseanimation duration="200" type="OutQuint"> </collapseanimation> </headercontextmenu> <selecteditemstyle CssClass="SelectedItem"></selecteditemstyle> <PagerStyle AlwaysVisible="True" Position="TopAndBottom" NextPageText="Next" PrevPageText="Prev" Mode="NextPrevAndNumeric"/> <mastertableview AutoGenerateColumns="False" datakeynames="key1,key14" ClientDataKeyNames="Key1,Key14" datasourceid="SqlDataSourceSearch" AllowMultiColumnSorting="True"> <norecordstemplate> No record to display </norecordstemplate> <HeaderStyle HorizontalAlign="Left" VerticalAlign="Bottom" Wrap="False" /> <ItemStyle Wrap="False" VerticalAlign="Top" HorizontalAlign="Left"/> <Columns> <telerik:GridBoundColumn DataField="Column1" DataType="System.DateTime" FilterControlWidth="100px" FilterListOptions="VaryByDataType" HeaderText="Upload Date" ReadOnly="True" SortExpression="Column1" UniqueName="Column1" Groupable="False" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column2" DataType="System.Decimal" HeaderText="Column2" SortExpression="Column2" FilterControlWidth="50px" UniqueName="Column2" Groupable="False" > </telerik:GridBoundColumn> <telerik:GridTemplateColumn AllowFiltering="false" Groupable="false"> <ItemTemplate> <asp:ImageButton ID="imgActionButton" runat="server" src="_assets/img/AddRecord2.gif"></asp:ImageButton> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Column3" HeaderText="Column3" FilterControlWidth="50px" ReadOnly="True" SortExpression="Column3" UniqueName="Column3" Groupable="False" DataType="System.String" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column4" HeaderText="Column4" FilterControlWidth="50px" SortExpression="Column4" UniqueName="Column4" Groupable="False" DataType="System.String" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column5" HeaderText="Column5" SortExpression="Column5" FilterControlWidth="50px" UniqueName="Column5" Groupable="False" DataType="System.String" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column6" HeaderText="Column6" FilterControlWidth="50px" ReadOnly="True" SortExpression="Column6" UniqueName="Column6" Groupable="False" DataType="System.String" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column7" FilterControlWidth="100px" DataType="System.DateTime" HeaderText="Column7" SortExpression="Column7" FilterListOptions="VaryByDataType" UniqueName="Column7" Groupable="False" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column8" HeaderText="Column8" ReadOnly="True" SortExpression="Column8" UniqueName="Column8" DataType="System.String"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn UniqueName="Column9" DataField="Column9" Groupable="False" DataType="System.String" FilterControlWidth="100px" > <HeaderTemplate> <asp:Label ID="LabelAccountName" runat="server" Text="Account"></asp:Label> </HeaderTemplate> <ItemTemplate> <asp:hyperlink id="AccountNameColumn" runat="server" text='<%# Eval("AccountName")%>'></asp:hyperlink> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Column10" FilterControlWidth="100px" HeaderText="Column10" SortExpression="Column10" UniqueName="Column10" Groupable="False" DataType="System.String"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column11" HeaderText="Column11" FilterControlWidth="80px" SortExpression="Column11" UniqueName="Column11" Groupable="False" DataType="System.String"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column12" HeaderText="Column12" FilterControlWidth="80px" SortExpression="Column12" UniqueName="Column12" Groupable="False" DataType="System.Int16"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn UniqueName="Column13" DataField="Column13" Groupable="False" DataType="System.String" FilterControlWidth="100px" > <HeaderTemplate> <asp:Label ID="LabelSerialNumber" runat="server" Text="Serial Number"></asp:Label> </HeaderTemplate> <ItemTemplate> <asp:hyperlink id="SerialNumberColumn" runat="server" text='<%# Eval("SerialNumber")%>'></asp:hyperlink> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Column14" FilterControlWidth="100px" DataType="System.DateTime" HeaderText="Column14" SortExpression="Column14" FilterListOptions="VaryByDataType" UniqueName="Column14" DataFormatString="{0:d}" Groupable="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column15" HeaderText="Column15" SortExpression="Column15" UniqueName="Column15" Groupable="False" DataType="System.String" FilterControlWidth="80px" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column16" HeaderText="Column16" SortExpression="Column16" UniqueName="Column16" Groupable="False" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column17" HeaderText="Column17" SortExpression="Column17" UniqueName="Column17" > </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column18" FilterControlWidth="80px" HeaderText="Column18" SortExpression="Column18" UniqueName="Column18" Groupable="False" DataType="System.String"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column19" FilterControlWidth="80px" HeaderText="Column19" SortExpression="Column19" DataType="System.String" UniqueName="Column19" Groupable="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column20" DataType="System.Decimal" FilterControlWidth="80px" HeaderText="Column20" ReadOnly="True" SortExpression="Column20" UniqueName="Column20" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column21" DataType="System.Decimal" FilterControlWidth="80px" HeaderText="Column21" ReadOnly="True" SortExpression="Column21" UniqueName="Column21" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column22" DataType="System.Decimal" FilterControlWidth="80px" HeaderText="Column22" ReadOnly="True" SortExpression="Column22" UniqueName="Column22" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column23" DataType="System.Decimal" FilterControlWidth="80px" HeaderText="Column23" ReadOnly="True" SortExpression="Column23" UniqueName="Column23" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column24" DataType="System.Decimal" FilterControlWidth="80px" HeaderText="Column23" ReadOnly="True" SortExpression="Column23" UniqueName="Column23" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column24" DataType="System.Decimal" FilterControlWidth="80px" HeaderText="Column24" ReadOnly="True" SortExpression="Column24" UniqueName="Column24" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column25" DataType="System.Decimal" FilterControlWidth="80px" HeaderText="Column25" ReadOnly="True" SortExpression="Column25" UniqueName="Column25" Display="True" Groupable="False" DataFormatString="{0:F2}hr" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column26" DataType="System.Decimal" FilterControlWidth="80px" HeaderText="Column26" ReadOnly="True" SortExpression="Column26" UniqueName="Column26" Display="True" Groupable="False" DataFormatString="{0:F2}%" Visible="True"> </telerik:GridBoundColumn> <telerik:GridCalculatedColumn HeaderText="Column27" UniqueName="Column27" DataType="System.Double" DataFormatString="{0:F2}hr" DataFields="Column27,Column26" Expression="{0}*100/{1}" > </telerik:GridCalculatedColumn> <telerik:GridBoundColumn DataField="Column28" HeaderText="Column28" ReadOnly="True" SortExpression="Column28" UniqueName="Column28" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column29" HeaderText="Column29" ReadOnly="True" SortExpression="Column29" UniqueName="Column29" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column30" HeaderText="Column30" ReadOnly="True" SortExpression="Column30" UniqueName="Column30" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column31" HeaderText="Column31" ReadOnly="True" SortExpression="Column31" UniqueName="Column31" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Column32" HeaderText="Column32" ReadOnly="True" SortExpression="Column32" UniqueName="Column32" Display="True" Groupable="False" Visible="True"> </telerik:GridBoundColumn> </Columns> </mastertableview> <ClientSettings AllowDragToGroup="True" AllowColumnsReorder="True" ReorderColumnsOnClient="True"> <Selecting AllowRowSelect="True" /> <Scrolling AllowScroll="true" UseStaticHeaders="True" /> <ClientEvents OnRowContextMenu="RowContextMenu" /> </ClientSettings> <filtermenu Skin="Vista" > <collapseanimation duration="200" type="OutQuint"> </collapseanimation> </filtermenu> </telerik:RadGrid><telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" AutoGenerateColumns="False" CellSpacing="0" Culture="de-DE" DataSourceID="ObjectDataSource1" GridLines="None" Width="450px" AllowSorting="True" ShowFooter="True" ondeletecommand="RadGrid1_DeleteCommand" oninsertcommand="RadGrid1_InsertCommand" onitemcommand="RadGrid1_ItemCommand" onitemdatabound="RadGrid1_ItemDataBound" onupdatecommand="RadGrid1_UpdateCommand"> <ClientSettings> <Selecting CellSelectionMode="None" /> </ClientSettings> <MasterTableView AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" CommandItemDisplay="TopAndBottom" DataKeyNames="ResID" DataSourceID="ObjectDataSource1"> <CommandItemSettings ExportToPdfText="Export to PDF" /> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column" Visible="True"> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column" Visible="True"> </ExpandCollapseColumn> <Columns> <telerik:GridTemplateColumn DataField="ResWidth" DataType="System.Int32" FilterControlAltText="Filter ResWidth column" HeaderText="<%$ Resources:BasicSettings, Width %>" SortExpression="ResWidth" UniqueName="ResWidth"> <EditItemTemplate> <telerik:RadNumericTextBox ID="RadNumericTextBox1" Runat="server" Culture="de-DE" DbValue='<%# Bind("ResWidth") %>' LabelWidth="" MinValue="0" Width="125px"> <NumberFormat DecimalDigits="0" ZeroPattern="n" /> </telerik:RadNumericTextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="RadNumericTextBox1" Display="Dynamic" ErrorMessage="<%$ Resources:BasicSettings, RequiredValidation %>"></asp:RequiredFieldValidator> </EditItemTemplate> <ItemTemplate> <asp:Label ID="ResWidthLabel" runat="server" Text='<%# Eval("ResWidth") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="ResHeight" DataType="System.Int32" FilterControlAltText="Filter ResHeight column" HeaderText="<%$ Resources:BasicSettings, Height %>" SortExpression="ResHeight" UniqueName="ResHeight"> <EditItemTemplate> <telerik:RadNumericTextBox ID="RadNumericTextBox2" Runat="server" Culture="de-DE" DbValue='<%# Bind("ResHeight") %>' LabelWidth="" MinValue="0" Width="125px"> <NumberFormat DecimalDigits="0" ZeroPattern="n" /> </telerik:RadNumericTextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="RadNumericTextBox2" Display="Dynamic" ErrorMessage="<%$ Resources:BasicSettings, RequiredValidation %>"></asp:RequiredFieldValidator> </EditItemTemplate> <ItemTemplate> <asp:Label ID="ResHeightLabel" runat="server" Text='<%# Eval("ResHeight") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridEditCommandColumn ButtonType="ImageButton" FilterControlAltText="Filter EditCommandColumn column" HeaderText="<%$ Resources:BasicSettings, Edit %>"> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" ConfirmText="<%$ Resources:BasicSettings, ConfirmDelete %>" HeaderText="<%$ Resources:BasicSettings, Delete %>" Text="Delete" UniqueName="DeleteColumn"> </telerik:GridButtonColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn1 column" UniqueName="EditCommandColumn1"> </EditColumn> </EditFormSettings> </MasterTableView> <FilterMenu EnableImageSprites="False"> </FilterMenu></telerik:RadGrid> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" TypeName="ResolutionsBLL" InsertMethod="InsertResolutions" SelectMethod="GetResolutions" DeleteMethod="DeleteResolution" UpdateMethod="UpdateResolution" > <DeleteParameters> <asp:Parameter Name="resID" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="ResWidth" Type="Int32" /> <asp:Parameter Name="ResHeight" Type="Int32" /> </InsertParameters> <SelectParameters> <asp:Parameter DefaultValue="1" Name="resArt" Type="Int32" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="resArt" Type="Int32" /> <asp:Parameter Name="resWidth" Type="Int32" /> <asp:Parameter Name="resHeight" Type="Int32" /> <asp:Parameter Name="resID" Type="Int32" /> </UpdateParameters></asp:ObjectDataSource>protected void RadGrid1_DeleteCommand(object sender, GridCommandEventArgs e){ try { int ID = Convert.ToInt32(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ResID"].ToString()); string logtext = string.Format("Delete {0} x {1}", oldWidth, oldHeight); // I need this here UserEventsBLL uev = new UserEventsBLL(); uev.AddUserEvent(thisUser.UserName, "deleteRes", logtext, Request.Url.AbsolutePath, null, ID, null); } catch (Exception ex) { ErrorsBLL errors = new ErrorsBLL(); errors.AddErrors(203, Request.Url.AbsolutePath, ex.Message, thisUser.UserName, ""); }}Hi everyone
First of all, I'm aware of another existing thread that has the almost same title; I've read it, and it didn't solve my problem; therefore I decided to write a new thread.
My problem goes as follows:
I have an UpdatePanel placed in a page, which is defined as follows:
1.<asp:UpdatePanel ID="up" runat="server" Visible="false"> 2. <ContentTemplate> 3. <asp:Label runat="server" Visible="false" ID="myLabel"></asp:Label> 4. </ContentTemplate> 5.</asp:UpdatePanel>I need the Label and the Label's type to invoke some JavaScript with the ScriptManager.RegisterStartupScript method, which we will see later; both the UpdatePanel and Label are only needed for this purpose, and the RadComboBox is not placed in there!
The following is the JavaScript method I need to invoke using the ScriptManager.RegisterStartupScript:
1.function MyFunc(){ 2. var combo = $find("MyRadComboBox.ClientID"); 3. combo.get_text(); 4.}And the following is the RegisterStartupScript method I use in the code-behind file:
1.ScriptManager.RegisterStartupScript(myLabel, myLabel.GetType(), "MyKey", "MyFunc();", true);Everytime the JavaScript method gets invoked by the RegisterStartupScript method from the code-behind, I get the following error on the client-side:
Uncaught TypeError: Cannot call method 'get_text' of null
The RadComboBox can't be found on the client-side using $find in this special situation. If I try to access it from Chrome's JS Console using the $find method, I'll get the object, and the invocation of a method on it works perfectly.
What am I doing wrong here? How can I fix this? It's a pretty annoying little problem, and I hope somebody can point me to the right direction.
Thanks very much in advance guys!