Vimal Kumar
Top achievements
Rank 1
Vimal Kumar
asked on 24 Feb 2009, 04:32 AM
Hi There,
I working on telerik. I want to maintain the grid header resized from client for that session. For that i provide the grid header resizing facility from client side. For that i used the coding:
By using this coding i am able to maintain the grid resizing for the session. But the problem i am facing is, i have provide facility in my grid that, when i will double click on any of the row in the grid it will move to edit page, And when i will come back to this page grid header use to come its original size. It's not maintaining the session. I just wanna the grid should maintain the header resized on double click also. Can anybody tell me the way to maintain the session on grid double click also.
Regards:
Vimal Kumar Srivastava
Madhepura, Bihar
Email Id: vimaltech04@gmail.com
I working on telerik. I want to maintain the grid header resized from client for that session. For that i provide the grid header resizing facility from client side. For that i used the coding:
using System; |
using System.Collections; |
using System.IO; |
using System.Web.UI; |
using System.Web.UI.WebControls; |
using Telerik.Web.UI; |
namespace WebApplication1 |
{ |
public class GridSettingsPersister |
{ |
private RadGrid gridInstance; |
public GridSettingsPersister( RadGrid gridInstance ) |
{ |
this.gridInstance = gridInstance; |
} |
//this method should be called on Render |
public string SaveSettings() |
{ |
object[] gridSettings = new object[4]; |
//Save groupBy |
GridGroupByExpressionCollection groupByExpressions = gridInstance.MasterTableView.GroupByExpressions; |
object[] groupExpressions = new object[groupByExpressions.Count]; |
int count = 0; |
foreach( GridGroupByExpression expression in groupByExpressions ) |
{ |
groupExpressions[count] = ((IStateManager)expression).SaveViewState(); |
count++; |
} |
gridSettings[0] = groupExpressions; |
//Save sort expressions |
gridSettings[1] = ((IStateManager)gridInstance.MasterTableView.SortExpressions).SaveViewState(); |
//Save columns order |
int columnsLength = gridInstance.MasterTableView.Columns.Count + |
gridInstance.MasterTableView.AutoGeneratedColumns.Length; |
Pair [] columnOrder = new Pair[ columnsLength ]; |
ArrayList allColumns = new ArrayList( columnsLength ); |
allColumns.AddRange(gridInstance.MasterTableView.Columns ); |
allColumns.AddRange(gridInstance.MasterTableView.AutoGeneratedColumns); |
int i = 0; |
foreach( GridColumn column in allColumns ) |
{ |
Pair p = new Pair(); |
p.First = column.OrderIndex; |
p.Second = column.HeaderStyle.Width; |
columnOrder[i] = p; |
i++; |
} |
gridSettings[2] = columnOrder; |
//Save filter expression |
gridSettings[3] = (object)gridInstance.MasterTableView.FilterExpression; |
LosFormatter formatter = new LosFormatter(); |
StringWriter writer = new StringWriter(); |
formatter.Serialize( writer, gridSettings ); |
return writer.ToString(); |
} |
//this method should be called on PageInit |
public void LoadSettings( string settings ) |
{ |
LosFormatter formatter = new LosFormatter(); |
StringReader reader = new StringReader( settings ); |
object[] gridSettings = (object[])formatter.Deserialize( reader ); |
//Load groupBy |
GridGroupByExpressionCollection groupByExpressions = this.gridInstance.MasterTableView.GroupByExpressions; |
groupByExpressions.Clear(); |
object[] groupExpressionsState = (object[])gridSettings[0]; |
int count = 0; |
foreach( object obj in groupExpressionsState ) |
{ |
GridGroupByExpression expression = new GridGroupByExpression(); |
((IStateManager)expression).LoadViewState( obj ); |
groupByExpressions.Add( expression ); |
count++; |
} |
//Load sort expressions |
this.gridInstance.MasterTableView.SortExpressions.Clear(); |
((IStateManager)this.gridInstance.MasterTableView.SortExpressions).LoadViewState( gridSettings[1] ); |
//Load columns order |
int columnsLength = this.gridInstance.MasterTableView.Columns.Count + |
this.gridInstance.MasterTableView.AutoGeneratedColumns.Length; |
Pair [] columnOrder = (Pair[])gridSettings[2]; |
if ( columnsLength == columnOrder.Length) |
{ |
ArrayList allColumns = new ArrayList( columnsLength ); |
allColumns.AddRange(this.gridInstance.MasterTableView.Columns ); |
allColumns.AddRange(this.gridInstance.MasterTableView.AutoGeneratedColumns); |
int i = 0; |
foreach( GridColumn column in allColumns ) |
{ |
column.OrderIndex = (int)columnOrder[i].First; |
column.HeaderStyle.Width = (Unit)columnOrder[i].Second; |
i++; |
} |
} |
//Load filter expression |
this.gridInstance.MasterTableView.FilterExpression = (string)gridSettings[3]; |
} |
} |
Regards:
Vimal Kumar Srivastava
Madhepura, Bihar
Email Id: vimaltech04@gmail.com
9 Answers, 1 is accepted
0
Vimal Kumar
Top achievements
Rank 1
answered on 24 Feb 2009, 06:16 AM
Hi there,
Actually the thing is that, in my page i am having one add button, which redirect the page to the next page, and when i will back to this page, the session will maintain. But the same time i have given double click facility to my grid, so that i will double click on my grid row i will be able to move to the next page for edit the row, but here if i will come back to the page, i am seeing the session is not maintain. I Can't able to find in the same page if it's working for add button, then why it's not working for double click. For double click i am mapping with radajax, i am not sure, whether it is not working because of radajax or some thing else. So please let me know the problem. I have already sent my sample code. Waiting for reply..........
Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
Actually the thing is that, in my page i am having one add button, which redirect the page to the next page, and when i will back to this page, the session will maintain. But the same time i have given double click facility to my grid, so that i will double click on my grid row i will be able to move to the next page for edit the row, but here if i will come back to the page, i am seeing the session is not maintain. I Can't able to find in the same page if it's working for add button, then why it's not working for double click. For double click i am mapping with radajax, i am not sure, whether it is not working because of radajax or some thing else. So please let me know the problem. I have already sent my sample code. Waiting for reply..........
Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
0
Vimal Kumar
Top achievements
Rank 1
answered on 26 Feb 2009, 05:45 AM
Hi there,
Can anybody help me to know that whether Ajax mapping is supporting to maintain the Grid Header For Session or not. Cause i did my work by using ajax mapping and its not supporting. i did my coding like:-
Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
Can anybody help me to know that whether Ajax mapping is supporting to maintain the Grid Header For Session or not. Cause i did my work by using ajax mapping and its not supporting. i did my coding like:-
In aspx page:- |
<script type="text/javascript"> |
//------ Row Double Click ------ // |
function RowDblClick(sender, eventArgs) |
{ |
var index = eventArgs.get_itemIndexHierarchical(); |
document.getElementById("radGridClickedRowIndex").value = index; |
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("RowDblClicked"); |
} |
</script> |
And in aspx.cs page : - |
protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) |
{ |
int radGridClickedRowIndex; |
//get the rowindex |
radGridClickedRowIndex = Convert.ToInt32(Request.Form["radGridClickedRowIndex"]); |
GridItem gdi = rgIssueList.Items[radGridClickedRowIndex]; |
//get the key values issue_id and assigned_to |
string strIssueId = rgIssueList.Items[radGridClickedRowIndex].GetDataKeyValue("issue_id").ToString(); |
string strAssignedto = rgIssueList.Items[radGridClickedRowIndex].GetDataKeyValue("assigned_to").ToString(); |
Session[ConstValues.ASSIGNED_TO] = strAssignedto; |
//Redirect to issue edit page |
Response.Redirect("IssueEdit.aspx?act=ed&iid=" + strIssueId, false); |
} |
Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
0
Hello Vimal Kumar,
I tested your GridSettingsPersister class in a sample application of mind and it is working all right with ajax. Could you send your complete aspx and code behind. Thank you.
Best wishes,
Tsvetoslav
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
I tested your GridSettingsPersister class in a sample application of mind and it is working all right with ajax. Could you send your complete aspx and code behind. Thank you.
Best wishes,
Tsvetoslav
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Vimal Kumar
Top achievements
Rank 1
answered on 27 Feb 2009, 03:29 PM
Hi Tsvetoslav,
Thanks for reviewing my code. Here i am showing you my aspx and code behind page :
Waiting for your reply.
Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
Thanks for reviewing my code. Here i am showing you my aspx and code behind page :
Aspx code |
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" |
CodeFile="IssueList.aspx.cs" Inherits="IssueList" Title="Datascan, LP - Issue Tracker" %> |
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> |
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> |
<telerik:RadScriptBlock runat="server" ID="RadScriptBlock1"> |
<script type="text/javascript"> |
//------ Grid Resize ------ // |
function GridCreated() |
{ |
var scrollArea = document.getElementById("<%= rgIssueList.ClientID %>" + "_GridData"); |
var dataHeight = document.getElementById("ctl00_ContentPlaceHolder1_rgIssueList_ctl00"); |
if(dataHeight.clientHeight < 350) |
{ |
scrollArea.style.height = dataHeight.clientHeight + 20 + "px"; |
scrollArea.style.overflow = "auto"; |
} |
} |
</script> |
<script type="text/javascript"> |
//------ Row Double Click ------ // |
function RowDblClick(sender, eventArgs) |
{ |
var index = eventArgs.get_itemIndexHierarchical(); |
document.getElementById("radGridClickedRowIndex").value = index; |
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("RowDblClicked"); |
} |
</script> |
<script type="text/javascript"> |
//------ Row Right Click ------ // |
function RowContextMenu(sender, eventArgs) |
{ |
var menu = $find("<%=RadMenu1.ClientID %>"); |
var evt = eventArgs.get_domEvent(); |
if(evt.target.tagName == "INPUT" || evt.target.tagName == "A") |
{ |
return; |
} |
var index = eventArgs.get_itemIndexHierarchical(); |
document.getElementById("radGridClickedRowIndex").value = index; |
sender.get_masterTableView().selectItem(sender.get_masterTableView().get_dataItems()[index].get_element(), true); |
menu.show(evt); |
evt.cancelBubble = true; |
evt.returnValue = false; |
if (evt.stopPropagation) |
{ |
evt.stopPropagation(); |
evt.preventDefault(); |
} |
} |
</script> |
<script type="text/javascript"> |
//------ Enter key for search button ------ // |
function clickButton(e) |
{ |
var eevt = e ? e : window.event; |
var bt = document.getElementById('btnSrch'); |
if (bt) |
{ |
if (evt.keyCode == 13) |
{ |
bt.click(); |
return false; |
} |
} |
} |
</script> |
</telerik:RadScriptBlock> |
<h2> |
Issues</h2> |
<table bgcolor="LightSteelBlue" cellpadding="0" cellspacing="0"> |
<tr> |
<td colspan="9" style="height: 15px"> |
</td> |
</tr> |
<tr> |
<td width="10"> |
</td> |
<td> |
<table cellpadding="3" cellspacing="0"> |
<tr> |
<td style="height: 29px"> |
<asp:Button ID="btnAdd" runat="server" Text="Add" CssClass="styButton" OnClick="btnAdd_Click" /></td> |
<td style="height: 29px"> |
<asp:Button ID="Button1" runat="server" Text="Edit" CssClass="styButton" OnClick="Button1_Click1" /></td> |
<td style="height: 29px"> |
<asp:Button ID="btnCancel" runat="server" Text="Cancel" CssClass="styButton" OnClick="btnCancel_Click"> |
</asp:Button></td> |
<td class="styLabel" style="height: 29px"> |
Search Text:</td> |
<td style="height: 29px"> |
<asp:TextBox ID="txtSearch" runat="server" CssClass="styDefault" onkeypress="javascript:return clickButton(event)"></asp:TextBox></td> |
<td class="styLabel" style="height: 29px"> |
View:</td> |
<td style="height: 29px"> |
<asp:DropDownList ID="ddlView" AutoPostBack="true" runat="server" EnableViewState="False" |
OnChange="Search()"> |
<asp:ListItem>Migrate</asp:ListItem> |
<asp:ListItem>Unassigned</asp:ListItem> |
<asp:ListItem Selected="True">Open issues by priority</asp:ListItem> |
<asp:ListItem>Open issues by customer</asp:ListItem> |
<asp:ListItem>Open test issues</asp:ListItem> |
<asp:ListItem>Recently changed</asp:ListItem> |
<asp:ListItem>Scanner group</asp:ListItem> |
<asp:ListItem>Server group</asp:ListItem> |
<asp:ListItem>Test group</asp:ListItem> |
<asp:ListItem>All</asp:ListItem> |
</asp:DropDownList></td> |
<td style="height: 29px"> |
<input id="btnSrch" class="styButton" type="button" value="Search" onclick="Search()" /> |
</td> |
</tr> |
</table> |
</td> |
<td width="10"> |
</td> |
</tr> |
<tr> |
<td width="10"> |
</td> |
<td> |
<table cellspacing="0" cellpadding="0"> |
<tr> |
<td> |
<telerik:RadGrid Width="70%" ID="rgIssueList" runat="server" GridLines="Horizontal" |
Skin="WebBlue" AllowSorting="True" AllowPaging="True" PageSize="15" AutoGenerateColumns="false" |
OnNeedDataSource="rgIssueList_NeedDataSource" OnPreRender="rgIssueList_PreRender" |
OnUnload="rgIssueList_Unload" OnLoad="rgIssueList_Load" OnSelectedIndexChanged="rgIssueList_SelectedIndexChanged" |
OnEditCommand="rgIssueList_EditCommand"> |
<ClientSettings ReorderColumnsOnClient="True" AllowColumnsReorder="True" EnableRowHoverStyle="true"> |
<ClientEvents OnRowDblClick="RowDblClick" OnRowContextMenu="RowContextMenu"> |
</ClientEvents> |
<DataBinding EnableCaching="True" /> |
<Resizing EnableRealTimeResize="true" ClipCellContentOnResize="true" AllowRowResize="false" |
ResizeGridOnColumnResize="false" AllowColumnResize="True"></Resizing> |
<Selecting AllowRowSelect="True"></Selecting> |
<Scrolling AllowScroll="true" UseStaticHeaders="true" SaveScrollPosition="true" EnableVirtualScrollPaging="True" /> |
</ClientSettings> |
<MasterTableView TableLayout="Fixed" Width="100%" DataKeyNames="issue_id,assigned_to"> |
<Columns> |
<telerik:GridBoundColumn DataField="issue_id" HeaderText="Issue" SortExpression="issue_id" |
UniqueName="issue_id" HeaderStyle-Width="40px" ItemStyle-Width="40px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="customer_desc" HeaderText="Customer" SortExpression="customer_desc" |
UniqueName="customer_desc" HeaderStyle-Width="100px" ItemStyle-Width="100px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="job_number" HeaderText="Job" SortExpression="job_number" |
UniqueName="job_number" HeaderStyle-Width="35px" ItemStyle-Width="35px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="job_desc" HeaderText="Job Desc" SortExpression="job_desc" |
UniqueName="job_desc" HeaderStyle-Width="70px" ItemStyle-Width="70px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="system" HeaderText="System" SortExpression="system" |
UniqueName="system" HeaderStyle-Width="70px" ItemStyle-Width="70px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="subsystem" HeaderText="Sub System" SortExpression="subsystem" |
UniqueName="subsystem" HeaderStyle-Width="70px" ItemStyle-Width="70px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="title" HeaderText="Title" SortExpression="title" |
UniqueName="title" HeaderStyle-Width="250px" ItemStyle-Width="250px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="due_date" HeaderText="Due" SortExpression="due_date" |
DataFormatString="{0:MM/dd/yyyy}" UniqueName="due_date" HeaderStyle-Width="75px" |
ItemStyle-Width="75px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="priority" HeaderText="Priority" SortExpression="priority" |
UniqueName="priority" HeaderStyle-Width="70px" ItemStyle-Width="70px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="status" HeaderText="Status" SortExpression="status" |
UniqueName="status" HeaderStyle-Width="90px" ItemStyle-Width="90px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="assigned_to" HeaderText="Assigned" SortExpression="assigned_to" |
UniqueName="assigned_to" HeaderStyle-Width="90px" ItemStyle-Width="90px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="tester" HeaderText="Tester" SortExpression="tester" |
UniqueName="tester" HeaderStyle-Width="90px" ItemStyle-Width="90px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="last_modified" HeaderText="Modified" SortExpression="last_modified" |
DataFormatString="{0:MM/dd/yyyy}" UniqueName="last_modified" HeaderStyle-Width="75px" |
ItemStyle-Width="75px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="last_modified_by" HeaderText="Modified By" SortExpression="last_modified_by" |
UniqueName="last_modified_by" HeaderStyle-Width="90px" ItemStyle-Width="90px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="created_by" HeaderText="Created by" SortExpression="created_by" |
UniqueName="created_by" HeaderStyle-Width="90px" ItemStyle-Width="90px"> |
</telerik:GridBoundColumn> |
</Columns> |
</MasterTableView> |
<ItemStyle Font-Size="9pt" HorizontalAlign="left" /> |
<AlternatingItemStyle Font-Size="9pt" HorizontalAlign="left" /> |
<HeaderStyle Font-Bold="true" Font-Size="9pt" HorizontalAlign="left" /> |
<PagerStyle Visible="false" /> |
</telerik:RadGrid> |
</td> |
</tr> |
<tr> |
<td> |
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest"> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="ddlView"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="rgIssueList" LoadingPanelID="AjaxLoadingPanel1" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
<telerik:AjaxSetting AjaxControlID="rgIssueList"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="rgIssueList" LoadingPanelID="AjaxLoadingPanel1" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="rgIssueList" LoadingPanelID="AjaxLoadingPanel1" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
<telerik:RadAjaxLoadingPanel ID="AjaxLoadingPanel1" runat="server" Height="100%" |
BackColor="#E0E0E0" Width="100%" Transparency="50"> |
<img alt="Loading..." src="Images/ajax-loader.gif" style="border: 0;" /> |
</telerik:RadAjaxLoadingPanel> |
<input type="hidden" id="radGridClickedRowIndex" name="radGridClickedRowIndex" /> |
<telerik:RadContextMenu ID="RadMenu1" runat="server" Skin="Gray" OnItemClick="RadMenu1_ItemClick"> |
<Items> |
<telerik:RadMenuItem Text="View" runat="server" /> |
</Items> |
<CollapseAnimation Duration="200" Type="OutQuint" /> |
</telerik:RadContextMenu> |
</td> |
</tr> |
</table> |
</td> |
<td width="10"> |
</td> |
</tr> |
<tr> |
<td colspan="9" align="left" bgcolor="lightcyan" style="height: 18px"> |
<span class="styLabel">Status:</span> |
<asp:Label ID="lblStatus" runat="server" ForeColor="Green" CssClass="styDefault"></asp:Label> |
</td> |
</tr> |
</table> |
<asp:ObjectDataSource ID="odsIssueList" runat="server" OldValuesParameterFormatString="original_{0}" |
SelectMethod="GetData" TypeName="IssueDALTableAdapters.IssueListTableAdapter"> |
<SelectParameters> |
<asp:ControlParameter ControlID="txtSearch" Name="search_string" PropertyName="Text" |
Type="String" /> |
<asp:ControlParameter ControlID="ddlView" Name="view_name" PropertyName="SelectedValue" |
Type="String" /> |
</SelectParameters> |
</asp:ObjectDataSource> |
</asp:Content> |
Aspx.cs code : |
using System; |
using System.Data; |
using System.Configuration; |
using System.Collections; |
using System.Web; |
using System.Web.Security; |
using System.Web.UI; |
using System.Web.UI.WebControls; |
using System.Web.UI.WebControls.WebParts; |
using System.Web.UI.HtmlControls; |
using System.Text; |
using Telerik.Web; |
using Telerik.Web.UI; |
public partial class IssueList : System.Web.UI.Page |
{ |
#region Declaration |
DataView dvIssueList; |
#endregion |
#region To maintain the Grid state |
protected override void Render(HtmlTextWriter writer) |
{ |
try |
{ |
base.Render(writer); |
SetGrid obj = new SetGrid(); |
Session["GridState"] = obj.SavePetNames(rgIssueList, "rgIssueList"); |
} |
catch (Exception ex) |
{ |
//strErr = ex.ToString(); |
} |
} |
protected void Page_Init(object sender, EventArgs e) |
{ |
try |
{ |
if (Session["GridState"] != null) |
{ |
GridSettings settings = new GridSettings(rgIssueList); |
settings.LoadSettings(Session["GridState"].ToString()); |
} |
} |
catch (Exception ex) |
{ |
//strErr = ex.ToString(); |
} |
} |
#endregion |
#region Page Load |
protected void Page_Load(object sender, EventArgs e) |
{ |
ClientScriptManager csm = Page.ClientScript; |
if (!csm.IsClientScriptBlockRegistered("Search")) |
{ |
StringBuilder sb = new StringBuilder(); |
if (ddlView.SelectedIndex == 0) |
{ |
ddlView.SelectedIndex = 6; |
} |
sb.Append("<script language=javascript>\n function Search()\n {\n document.location = \"IssueList.aspx?"); |
sb.Append("st=\" + document.forms[0]." + txtSearch.ClientID + ".value + \"&ddv=\" + document.forms[0]." + |
ddlView.ClientID + ".selectedIndex \n }\n</script>"); |
csm.RegisterClientScriptBlock(typeof(Page), "Search", sb.ToString()); |
} |
//Response.Write(Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Value); |
if (Request.QueryString["st"] != null) |
{ |
if (Request.QueryString["st"].ToString() != string.Empty) |
txtSearch.Text = Request.QueryString["st"].ToString(); |
} |
if (Request.QueryString["ddv"] != null) |
{ |
if (!Page.IsPostBack) |
ddlView.SelectedIndex = Convert.ToInt32(Request.QueryString["ddv"]); |
} |
if (!IsPostBack) |
{ |
//dvIssueList = CheckViewState(); |
//rgIssueList.VirtualItemCount = 528;//dvIssueList.Table.Rows.Count; |
} |
txtSearch.Focus(); |
} |
#endregion |
#region CheckViewState |
private DataView CheckViewState() |
{ |
try |
{ |
//Check View State For Job Columns |
if (ViewState["IssueList"] == null) |
{ |
dvIssueList = ((DataView)(odsIssueList.Select())); |
// Create the column |
DataColumn dataColumn = new DataColumn(); |
dataColumn.DataType = System.Type.GetType("System.Int32"); |
dataColumn.ColumnName = "RowIndex"; |
// Add it to dataTable |
dvIssueList.Table.Columns.Add(dataColumn); |
// Populate it |
int rowIndex = 1; |
foreach (DataRow row in dvIssueList.Table.Rows) |
{ |
row["RowIndex"] = rowIndex++; |
} |
ViewState["IssueList"] = dvIssueList; |
} |
else |
{ |
dvIssueList = (DataView)ViewState["IssueList"]; |
} |
} |
catch (Exception ex) |
{ |
// Write to Log File |
//DNLogger objWriteLog = new DNLogger(); |
//objWriteLog.LogInfo(ex); |
} |
return dvIssueList; |
} |
#endregion |
#region Add Issue |
protected void btnAdd_Click(object sender, EventArgs e) |
{ |
Response.Redirect("IssueEdit.aspx?act=ad"); |
} |
#endregion |
#region Search Issue |
protected void btnSearch_Click(object sender, EventArgs e) |
{ |
//Response.Redirect("IssueList.aspx?ddv=" + ddlView.SelectedIndex); |
} |
#endregion |
#region Cancel Issue |
protected void btnCancel_Click(object sender, EventArgs e) |
{ |
CrumbsBLL BCTrail = (CrumbsBLL)Context.Session["bc"]; |
string strUrl = BCTrail.GetCrumb(); |
Context.Session["bc"] = BCTrail; |
Response.Redirect(strUrl); |
} |
#endregion |
#region Need Data Source |
protected void rgIssueList_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
{ |
try |
{ |
//Bind The Data With Grid |
dvIssueList = ((DataView)(odsIssueList.Select())); |
//dvIssueList.Table.DefaultView.RowFilter = "RowIndex > " + rgIssueList.CurrentPageIndex * rgIssueList.PageSize + " AND RowIndex <= " + ((rgIssueList.CurrentPageIndex + 1) * rgIssueList.PageSize) + ""; |
rgIssueList.DataSource = dvIssueList.Table.DefaultView; |
} |
catch (Exception ex) |
{ |
// Write to Log File |
//DNLogger objWriteLog = new DNLogger(); |
//objWriteLog.LogInfo(ex); |
} |
} |
#endregion |
#region Right click to view the item |
protected void RadMenu1_ItemClick(object sender, RadMenuEventArgs e) |
{ |
int radGridClickedRowIndex; |
//get the rowindex |
radGridClickedRowIndex = Convert.ToInt32(Request.Form["radGridClickedRowIndex"]); |
GridItem gdi = rgIssueList.Items[radGridClickedRowIndex]; |
//get the key values issue_id and assigned_to |
string strIssueId = rgIssueList.Items[radGridClickedRowIndex].GetDataKeyValue("issue_id").ToString(); |
string strAssignedto = rgIssueList.Items[radGridClickedRowIndex].GetDataKeyValue("assigned_to").ToString(); |
switch (e.Item.Text) |
{ |
case "View": |
Session[ConstValues.ASSIGNED_TO] = strAssignedto; |
//Redirect to issue view page |
Response.Redirect("IssueView.aspx?iid=" + strIssueId, false); |
break; |
} |
} |
#endregion |
#region create AjaxRequest for row double click to edit the item |
protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) |
{ |
int radGridClickedRowIndex; |
//get the rowindex |
radGridClickedRowIndex = Convert.ToInt32(Request.Form["radGridClickedRowIndex"]); |
GridItem gdi = rgIssueList.Items[radGridClickedRowIndex]; |
//get the key values issue_id and assigned_to |
string strIssueId = rgIssueList.Items[radGridClickedRowIndex].GetDataKeyValue("issue_id").ToString(); |
string strAssignedto = rgIssueList.Items[radGridClickedRowIndex].GetDataKeyValue("assigned_to").ToString(); |
Session[ConstValues.ASSIGNED_TO] = strAssignedto; |
//Redirect to issue edit page |
Response.Redirect("IssueEdit.aspx?act=ed&iid=" + strIssueId, false); |
} |
#endregion |
#region Grid Prerender |
protected void rgIssueList_PreRender(object sender, EventArgs e) |
{ |
SetGrid obj = new SetGrid(); |
Session["GridState"] = obj.SavePetNames(rgIssueList, "rgIssueList"); |
CrumbsBLL BCTrail = null; |
if (Context.Session["bc"] == null) |
BCTrail = new CrumbsBLL(); |
else |
BCTrail = (CrumbsBLL)Context.Session["bc"]; |
GridSortExpression expression = new GridSortExpression(); |
if (BCTrail.CrumbPickedUp && BCTrail.CrumbHasSortPageInfo()) |
{ |
expression.FieldName = BCTrail.GridSortExpression(); |
expression.SortOrder = (GridSortOrder)BCTrail.GridSortDirection(); |
rgIssueList.CurrentPageIndex = BCTrail.GridPage(); |
rgIssueList.MasterTableView.Rebind(); |
} |
BCTrail.AddCrumb("IssueList.aspx", "st=" + txtSearch.Text + "&ddv=" + ddlView.SelectedIndex, "Issue List", |
rgIssueList.CurrentPageIndex, expression.FieldName, (SortDirection)expression.SortOrder); |
Context.Session["bc"] = BCTrail; |
} |
#endregion |
#region To Maintain The Changes For That Particular Session |
protected void rgIssueList_Unload(object sender, EventArgs e) |
{ |
SetGrid obj = new SetGrid(); |
Session["GridState"] = obj.SavePetNames(rgIssueList, "rgIssueList"); |
} |
protected void rgIssueList_Load(object sender, EventArgs e) |
{ |
SetGrid obj = new SetGrid(); |
Session["GridState"] = obj.SavePetNames(rgIssueList, "rgIssueList"); |
} |
#endregion |
#region SelectedIndexChanged |
protected void rgIssueList_SelectedIndexChanged(object sender, EventArgs e) |
{ |
SetGrid obj = new SetGrid(); |
Session["GridState"] = obj.SavePetNames(rgIssueList, "rgIssueList"); |
int radGridClickedRowIndex; |
//get the rowindex |
radGridClickedRowIndex = Convert.ToInt32(Request.Form["radGridClickedRowIndex"]); |
GridItem gdi = rgIssueList.Items[radGridClickedRowIndex]; |
//get the key values issue_id and assigned_to |
string strIssueId = rgIssueList.Items[radGridClickedRowIndex].GetDataKeyValue("issue_id").ToString(); |
string strAssignedto = rgIssueList.Items[radGridClickedRowIndex].GetDataKeyValue("assigned_to").ToString(); |
Session[ConstValues.ASSIGNED_TO] = strAssignedto; |
//Redirect to issue edit page |
Response.Redirect("IssueEdit.aspx?act=ed&iid=" + strIssueId, false); |
} |
#endregion |
#region EditCommand |
protected void rgIssueList_EditCommand(object source, GridCommandEventArgs e) |
{ |
} |
#endregion |
#region Edit Issue |
protected void Button1_Click1(object sender, EventArgs e) |
{ |
} |
#endregion |
} |
Waiting for your reply.
Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
0
Vimal Kumar
Top achievements
Rank 1
answered on 02 Mar 2009, 05:14 AM
Hi Tsvetoslav,
As you asked, i have sent you my aspx page as well as code behind page. But still waiting for any response from your side.
Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
As you asked, i have sent you my aspx page as well as code behind page. But still waiting for any response from your side.
Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
0
Hello Vimal Kumar,
In order to persist the header with settings of the grid you have to find a way on each ajax request to pass the new-header-widths information to the server so that it is availale to the persister object to save in the session. When resizing the columns on the client, there is no way for the grid to automatically know on the server what the new widths are. That's why you can, for example, intercept the ColumnResized client event of the grid, collect the new width for each column when resized, and pass this information as an argument to the ajaxRequest method.
I hope this helps.
Please, note that the 2nd and 3rd of March are Bulgarian national holidays and we are not in a postion to guarantee a timely response to support tickets during this period.
Best Regards,
Tsvetoslav
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
In order to persist the header with settings of the grid you have to find a way on each ajax request to pass the new-header-widths information to the server so that it is availale to the persister object to save in the session. When resizing the columns on the client, there is no way for the grid to automatically know on the server what the new widths are. That's why you can, for example, intercept the ColumnResized client event of the grid, collect the new width for each column when resized, and pass this information as an argument to the ajaxRequest method.
I hope this helps.
Please, note that the 2nd and 3rd of March are Bulgarian national holidays and we are not in a postion to guarantee a timely response to support tickets during this period.
Best Regards,
Tsvetoslav
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Vimal Kumar
Top achievements
Rank 1
answered on 12 Mar 2009, 05:48 AM
Hi Tsvetoslav,
As you suggest me, i followed the way, And it's working as i wished. But i felt it's very slow. It's taking much time, when i use to resize the column width. I just wanna to know, is there any other way available to solve this problem. If so, please let me know. Here i am posting the coding which helps me to come out of this problem:
This codes works fine. But if any other way is also available then please let me know. waiting for your reply....
Thanks & Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
As you suggest me, i followed the way, And it's working as i wished. But i felt it's very slow. It's taking much time, when i use to resize the column width. I just wanna to know, is there any other way available to solve this problem. If so, please let me know. Here i am posting the coding which helps me to come out of this problem:
Aspx: |
----- |
function ColumnResized(sender, eventArgs) |
{ |
document.getElementById("radGridClickedRowIndex").value = "Resized"; |
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("ColumnResized"); |
} |
aspx.cs |
------- |
protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) |
{ |
if (Request.Form["radGridClickedRowIndex"].ToLower() != "resized") |
{ |
//Double click to row edit |
int radGridClickedRowIndex; |
//get the rowindex |
radGridClickedRowIndex = Convert.ToInt32(Request.Form["radGridClickedRowIndex"]); |
GridItem gdi = rgIssueList.Items[radGridClickedRowIndex]; |
//get the key value issue_id |
string strIssueId = rgIssueList.Items[radGridClickedRowIndex].GetDataKeyValue("issue_id").ToString(); |
//Redirect to issue edit page |
Response.Redirect("IssueEdit.aspx?act=ed&iid=" + strIssueId, false); |
} |
else |
{ |
//set the grid column with when its resized |
SetGrid obj = new SetGrid(); |
Session["GridState"] = obj.SavePetNames(rgIssueList, "rgIssueList"); |
} |
} |
This codes works fine. But if any other way is also available then please let me know. waiting for your reply....
Thanks & Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
0
Accepted
Hi Vimal Kumar,
You do not need to make an ajax request each time a column is resized. I believe this might be the reason for the slow-down in performance. Instead, you can collect the new column widths on the client and if they have changed persist them next time a row is double clicked, i.e. next time an ajax request is made for the purpose of redirecting to the edit page.
For your convenience, I am sending you a small sample that employs your grid persister class and persists the column widths as described above.
Best Regards,
Tsvetoslav
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
You do not need to make an ajax request each time a column is resized. I believe this might be the reason for the slow-down in performance. Instead, you can collect the new column widths on the client and if they have changed persist them next time a row is double clicked, i.e. next time an ajax request is made for the purpose of redirecting to the edit page.
For your convenience, I am sending you a small sample that employs your grid persister class and persists the column widths as described above.
Best Regards,
Tsvetoslav
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Vimal Kumar
Top achievements
Rank 1
answered on 18 Mar 2009, 10:37 AM
Hi Tsvetoslav ,
Thanks for your help. It's working fine. Really very happy. It's really working fine.Thanks a lot. Let me know if you wanna to know how and what code i have used.
Thanks & Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com
Thanks for your help. It's working fine. Really very happy. It's really working fine.Thanks a lot. Let me know if you wanna to know how and what code i have used.
Thanks & Regards:
Vimal Kumar Srivastava
Email Id: vimaltech04@gmail.com