<telerik:RadPageView ID="RadPageView4" runat="server"> <div style="padding-right: 10px; padding-left: 10px;"> <br /> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" BorderStyle="Solid"> <asp:Label ID="Label2" runat="server" ForeColor="Red">Loading... </asp:Label> <br /> <asp:Image ID="Image1" runat="server" ImageUrl="WebBlue\Ajax\WebBlue.gif" /> </telerik:RadAjaxLoadingPanel> <asp:Panel ID="Panel1" runat="server"> <table cellspacing="2px" cellpadding="0px"> <tr> <td colspan="2"> <asp:Label ID="lblGrade" runat="server"> Grade:</asp:Label> </td> </tr> <tr> <td> <label for="txtComment1"> Comment 1:</label> <br /> <telerik:RadTextBox ID="txtComment1" runat="server" TextMode="MultiLine" Rows="5" Columns="6" Height="50px" ReadOnly="true" Width="320px" Skin="WebBlue"/> <br /> </td> <td> <label for="txtTarget1"> Target 1:</label> <br /> <telerik:RadTextBox ID="txtTarget1" runat="server" TextMode="MultiLine" Rows="5" Columns="6" Height="50px" ReadOnly="true" Width="320px" Skin="WebBlue"/> </td> </tr> <tr> <td> <label for="txtComment2"> Comment 2:</label> <br /> <telerik:RadTextBox ID="txtComment2" runat="server" TextMode="MultiLine" Rows="5" Columns="6" Height="50px" Width="320px" Skin="WebBlue"> </telerik:RadTextBox> </td> <td> <label for="txtTarget2"> Target 2:</label> <br /> <telerik:RadTextBox ID="txtTarget2" runat="server" TextMode="MultiLine" Rows="5" Columns="6" Height="50px" Width="320px" Skin="WebBlue" /> </td> </tr> <tr> </tr> </table> </asp:Panel> <br /> <telerik:RadGrid ID="RadGridReviews" runat="server" AutoGenerateColumns="False" Skin="WebBlue" OnItemCommand="OnSelectRecords" Width="400px"> <MasterTableView ShowFooter="true" DataKeyNames="qualcode"> <RowIndicatorColumn Visible="true" UniqueName="RowIndicator"> <HeaderStyle Width="20px" BackColor="LightSkyBlue" /> </RowIndicatorColumn> <Columns> <telerik:GridBoundColumn DataField="reference" Visible="False" UniqueName="ColumnRef"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="qualcode" HeaderText="Qualification" ItemStyle-Width="100"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="classcode" HeaderText="Class" ItemStyle-Width="150" UniqueName="ColumnClass"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="review" HeaderText="Review" UniqueName="ColumnReview" ItemStyle-Width="100"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="attainment_grade" Visible="False" UniqueName="ColumnGrade"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="comment1" Visible="False" UniqueName="ColumnComment1"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="comment2" Visible="False" UniqueName="ColumnComment2"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="target1" Visible="False" UniqueName="ColumnTarget1"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="target2" Visible="False" UniqueName="ColumnTarget2"> </telerik:GridBoundColumn> </Columns> </MasterTableView> <ClientSettings EnableRowHoverStyle="true" EnablePostBackOnRowClick="true"> <Selecting AllowRowSelect="true" /> </ClientSettings>when i was doing client side paging and changed the page size in the radgrid at runtime, it is throwing error at
var link = item.get_cell(“Project”).getElementsByTagName(“a”)[0]; as
Uncaught TypeError: Cannot set property ‘innerHTML’ of undefined.
I totally have 3 rows to be binded in the grid. If i set pagesize in the aspx as 10 and then change the pagesize at run time to 20 it works.
But if i set the pagesize in aspx as 1 and later change the pagesize in the runtime to 10 it’s not work.
gesize in aspx as 1 and later change the pagesize in the runtime to 10 it’s not work.
aspx:
ASPX:
<telerik:RadGrid ID="RadGrid1" Skin="Office2007" runat="server"
GridLines="None" AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false" PageSize="1">
<ClientSettings>
<ClientEvents OnCommand="RadGrid1_Command" OnRowDataBound="OpenSurveys_OnRowDataBound" />
</ClientSettings>
<MasterTableView>
<Columns>
<telerik:GridBoundColumn DataField="ProjectID" HeaderText="ProjectID" Visible="False" />
<telerik:GridBoundColumn DataField="SurveyPriority" HeaderText ="Priority" DataType="System.String"/>
<telerik:GridHyperLinkColumn DataTextField="SurveyName" DataNavigateUrlFields="SurveyName"
UniqueName="Name" HeaderText="Name" ItemStyle-Font-Underline="true" />
<telerik:GridBoundColumn DataField="SurveyCompletionStatusForPanelist" HeaderText="Completion Status" DataType="System.String" />
<telerik:GridBoundColumn DataField="SurveyClosingDate" HeaderText="Due Date" DataFormatString="{0:d}"/>
<telerik:GridBoundColumn DataField="AdditionalInfo" HeaderText ="Additional Information" />
</Columns>
</MasterTableView>
<PagerStyle AlwaysVisible="true" />
</telerik:RadGrid>
CS:
function OpenSurveys_OnRowDataBound(sender, args)
{
console.log("hyperlink");
// manually set the hyperlink's title
var item = args.get_item();
var dataItem = args.get_dataItem();
var link = item.get_cell("Name").getElementsByTagName("a")[0];
console.log("item,dataItem,link",item,dataItem,link);
link.innerHTML = dataItem.SurveyName;
link.href = dataItem.SurveyURL;
}
when i was doing client side paging and changed the page size in the radgrid at runtime, it is throwing error at
var link = item.get_cell(“Project”).getElementsByTagName(“a”)[0]; as
Uncaught TypeError: Cannot set property ‘innerHTML’ of undefined.
I totally have 3 rows to be binded in the grid. If i set pagesize in the aspx as 10 and then change the pagesize at run time to 20 it works.
But if i set the pagesize in aspx as 1 and later change the pagesize in the runtime to 10 it’s not working.
ASPX:
<telerik:RadGrid ID="RadGrid1" Skin="Office2007" runat="server"
GridLines="None" AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false" PageSize="1">
<ClientSettings>
<ClientEvents OnCommand="RadGrid1_Command" OnRowDataBound="OpenSurveys_OnRowDataBound" />
</ClientSettings>
<MasterTableView>
<Columns>
<telerik:GridBoundColumn DataField="ProjectID" HeaderText="ProjectID" Visible="False" />
<telerik:GridBoundColumn DataField="SurveyPriority" HeaderText ="Priority" DataType="System.String"/>
<telerik:GridHyperLinkColumn DataTextField="SurveyName" DataNavigateUrlFields="SurveyName"
UniqueName="Name" HeaderText="Name" ItemStyle-Font-Underline="true" />
<telerik:GridBoundColumn DataField="SurveyCompletionStatusForPanelist" HeaderText="Completion Status" DataType="System.String" />
<telerik:GridBoundColumn DataField="SurveyClosingDate" HeaderText="Due Date" DataFormatString="{0:d}"/>
<telerik:GridBoundColumn DataField="AdditionalInfo" HeaderText ="Additional Information" />
</Columns>
</MasterTableView>
<PagerStyle AlwaysVisible="true" />
</telerik:RadGrid>
CS:
function OpenSurveys_OnRowDataBound(sender, args)
{
console.log("hyperlink");
// manually set the hyperlink's title
var item = args.get_item();
var dataItem = args.get_dataItem();
var link = item.get_cell("Name").getElementsByTagName("a")[0];
console.log("item,dataItem,link",item,dataItem,link);
link.innerHTML = dataItem.SurveyName;
link.href = dataItem.SurveyURL;
}
function pageLoad(sender, args)
{
document.getElementById("<%=RadGrid1.ClientID%>").style.display="block";
document.getElementById("<%=RadGrid2.ClientID%>").style.display="none";
OpenSurveysTableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
$find("<%= RadAjaxLoadingPanel1.ClientID %>").show("<%= RadGrid1.ClientID %>");
commandName = "Load";
executeMethod("/WebServices/SurveyDetails.asmx", "OpenSurveys", getOpenSurveysRequestData(OpenSurveysTableView), updateOpenSurveyGrid, updateFailed);
}
function RadGrid1_Command(sender, args)
{
console.log("RadGrid1_Command");
args.set_cancel(true);
commandName = args.get_commandName();
console.log("commandName",commandName);
$find("<%= RadAjaxLoadingPanel1.ClientID %>").show("<%= RadGrid1.ClientID %>");
executeMethod("/WebServices/SurveyDetails.asmx", "OpenSurveys", getOpenSurveysRequestData(OpenSurveysTableView), updateOpenSurveyGrid, updateFailed);
}
function updateOpenSurveyGrid(result)
{
//alert(result);
$find("<%= RadAjaxLoadingPanel1.ClientID %>").hide("<%= RadGrid1.ClientID %>");
console.log("updateOpenSurveyGrid", result);
OpenSurveysTableView.set_dataSource(result);
OpenSurveysTableView.dataBind();
if (commandName == "PageSize" || commandName == "Load" || commandName == "Page") {
console.log("paging");
executeMethod("/WebServices/SurveyDetails.asmx", "GetOpenSurveyCount", "{}", updateOpenSurveyVirtualItemCount);
}
}
function updateOpenSurveyVirtualItemCount(result)
{
OpenSurveysTableView.set_virtualItemCount(result);
}
function getOpenSurveysRequestData(OpenSurveysTableView)
{
console.log("getOpenSurveysRequestData", OpenSurveysTableView)
var openpageSize = OpenSurveysTableView.get_pageSize();
var opencurrentPageIndex = OpenSurveysTableView.get_currentPageIndex();
var openstartIndex = openpageSize * opencurrentPageIndex;
//console.log("openpageSize,opencurrentPageIndex,openstartIndex,OpenSurveysTableView.get_pageSize()",openpageSize,opencurrentPageIndex,openstartIndex,OpenSurveysTableView.get_pageSize())
return JSON.stringify({
"startIndex": openstartIndex,
"maximumRows": OpenSurveysTableView.get_pageSize(),
"sortExpression": '',
"filterExpression": ''
});
}
function executeMethod(location, methodName, methodArguments, onSuccess, onFail)
{
//console.log("executeMethod", location, methodName, methodArguments, onSuccess, onFail);
$.ajax({
type: "POST",
url: location + "/" + methodName,
data: methodArguments,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: onSuccess,
fail: onFail
});
}
SortedList
<string, GridGroupHeaderItem> headerItems = new SortedList<string, GridGroupHeaderItem>();
protected void rtl_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridGroupHeaderItem) { GridGroupHeaderItem item = (GridGroupHeaderItem)e.Item; headerItems.Add(groupDataRow["Betriebegruppe"].ToString(), item); } else if (e.Item is GridItem) { GridItem item = (GridItem)e.Item; item.Selected = dataBase.checkIsItemSelected(item); if (item.Selected && !headerItems[dataRow.Betriebegruppe].Expanded) { headerItems[dataRow.Betriebegruppe].Expanded = true; } } }</telerik:GridBoundColumn> <telerik:GridRatingColumn DataField="Rating" HeaderText="Rating" AutoPostBackOnFilter="true" ShowFilterIcon="true" CurrentFilterFunction="GreaterThanOrEqualTo" CurrentFilterValue="0.0" Precision="Item" FilterDelay="2000" FilterListOptions="AllowAllFilters"> <HeaderStyle Width="250px" /> </telerik:GridRatingColumn><telerik:GridRatingColumn DataField="Rating" HeaderText="Rating" AutoPostBackOnFilter="true" ShowFilterIcon="true" CurrentFilterFunction="GreaterThanOrEqualTo" CurrentFilterValue="0.0" Precision="Half" FilterDelay="2000" FilterListOptions="AllowAllFilters"> <HeaderStyle Width="250px" /> </telerik:GridRatingColumn><%@ Page Title="" Language="C#" MasterPageFile="~/MBA/MBA.master" AutoEventWireup="true" CodeFile="ProgramMembers.aspx.cs" Inherits="MBA_ProgramMembers" %><%@ Register Src="../Controls/AddPersonModal.ascx" TagName="AddPersonModal" TagPrefix="uc1" %><asp:Content ID="Content1" ContentPlaceHolderID="NestedContent" runat="Server"> <script type="text/javascript"> function OpenPositionedWindow(oButton, url, windowName) { var oWnd = window.radopen(url, windowName); } function openRadWindow(HNUMBER) { var oWnd = window.open("StudentFolder.aspx?HNUMBER=" + HNUMBER, "RadWindow1", "WindowPopup", "width=400px, height=400px, resizable"); oWnd.center(); } </script> <div id="programMembersGrid"> <telerik:RadGrid ID="rgMBAProgramMembers" runat="server" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" DataSourceID="ldsMBAProgramMembers" GridLines="None" CellSpacing="0" EnableLinqExpressions="false"> <ClientSettings> <Selecting AllowRowSelect="True" /> </ClientSettings> <MasterTableView AutoGenerateColumns="False" DataSourceID="ldsMBAProgramMembers" FilterExpression="([Active] = True)"> <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="HNUMBER" DataType="System.Int32" FilterControlAltText="Filter HNUMBER column" HeaderText="HNUMBER" SortExpression="HNUMBER" UniqueName="HNUMBER" Visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="BANNER_ID" FilterControlAltText="Filter BANNER_ID column" HeaderText="Anumber" SortExpression="BANNER_ID" UniqueName="BANNER_ID" AutoPostBackOnFilter="false" CurrentFilterFunction="equalto" FilterDelay="4000" ShowFilterIcon="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FullName" FilterControlAltText="Filter FullName column" HeaderText="Name" SortExpression="FullName" UniqueName="FullName" AutoPostBackOnFilter="false" CurrentFilterFunction="Contains" FilterDelay="4000" FilterControlWidth="150" ShowFilterIcon="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ProgramName" FilterControlAltText="Filter ProgramName column" HeaderText="Program" SortExpression="ProgramName" UniqueName="ProgramName" AllowFiltering="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="MemberTypes" FilterControlAltText="Filter MemberTypes column" HeaderText="MemberTypes" SortExpression="MemberTypes" UniqueName="MemberTypes" AllowFiltering="false"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="Active" DataType="System.Boolean" HeaderText="Active" UniqueName="Active" AutoPostBackOnFilter="true" ShowFilterIcon="false" AllowSorting="true" CurrentFilterFunction="EqualTo" CurrentFilterValue="True"> </telerik:GridCheckBoxColumn> <telerik:GridTemplateColumn ItemStyle-Width="20px" HeaderStyle-Width="20px" FooterStyle-Width="20px"> <ItemTemplate> <a href="#" onclick="openRadWindow('<%#DataBinder.Eval(Container.DataItem,"HNUMBER")%>'); return false;"> <asp:Image ID="iFolder" runat="server" ImageUrl="~/App_Themes/Huntsman/Grid/Folder.png" Style="border: none; border-width: 0" /></a> </ItemTemplate> <FilterTemplate> Show All <asp:ImageButton ID="btnShowAll" runat="server" ImageUrl="~/App_Themes/Huntsman/Grid/filterCancel.gif" AlternateText="Show All" ToolTip="Show All" OnClick="btnShowAll_Click" Style="vertical-align: middle" /> </FilterTemplate> </telerik:GridTemplateColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu> </telerik:RadGrid> </div> <telerik:RadWindowManager ID="RadWindowManager1" Width="1020px" Height="1170px" EnableShadow="true" VisibleOnPageLoad="true" RestrictionZoneID="folderContainer" runat="server"> </telerik:RadWindowManager> <asp:LinqDataSource ID="ldsMBAProgramMembers" runat="server" ContextTypeName="DAL.HuntsmanLinqDataContext" EntityTypeName="" TableName="vw_MBAProgramMembers"> </asp:LinqDataSource> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rgMBAProgramMembers"> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="ldsMBAProgramMembers"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgMBAProgramMembers" /> <telerik:AjaxUpdatedControl ControlID="ldsMBAProgramMembers" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager></asp:Content>-----------------------------------------------------------------------------------------------------------------------------------using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;public partial class MBA_ProgramMembers : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { } protected void btnShowAll_Click(object sender, System.Web.UI.ImageClickEventArgs e) { rgMBAProgramMembers.MasterTableView.FilterExpression = string.Empty; foreach (GridColumn column in rgMBAProgramMembers.MasterTableView.RenderColumns) { if (column is GridBoundColumn) { GridBoundColumn boundColumn = column as GridBoundColumn; boundColumn.CurrentFilterValue = string.Empty; } } this. rgMBAProgramMembers.MasterTableView.Rebind(); }}