radFileExplorer.Grid.ID = radGridViewName;
radFileExplorer.Grid.AllowSorting = true;
radFileExplorer.Grid.ItemDataBound += new GridItemEventHandler(radFileExplorer_ItemDataBound);
radFileExplorer.Grid.SortCommand += new GridSortCommandEventHandler(radFileExplorer_SortCommand);
radFileExplorer.TreeView.NodeClick += new RadTreeViewEventHandler(treeView_NodeClick);
Below is the code written for radFileExplorer_SortCommand event. The below event is not getting invoked on click of the column header.
void
radFileExplorer_SortCommand(object sender, GridSortCommandEventArgs e)
{
string sortDir = "ASC";
DataView dv = new DataView(Documents);
string viewStateKey = "sortDirection" + e.SortExpression;
if (ViewState[viewStateKey] != null)
{
sortDir = ((string)ViewState[viewStateKey] == "ASC") ? "DESC" : "ASC";
}
ViewState[viewStateKey] = sortDir;
dv.Sort = e.SortExpression +
" " + sortDir;
SortExpression = dv.Sort;
GridView docListGrid = (GridView)this.FindControl(radGridViewName);
if (docListGrid != null)
{
docListGrid.DataSource = dv;
docListGrid.DataBind();
}
}
This is quite urgent and any help would be appriciated.
Many thanks in advance.
Regards
Rajeev
public void Page_Load(object sender, EventArgs e) { // Get Total ProcessTemplates SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MSCBE.DashboardConnectionString"].ConnectionString); SqlCommand cmd = new SqlCommand("SELECT COUNT(ProcessTemplate_id) AS total FROM ProcessTemplate", conn); conn.Open(); int intTotalProcessTemplates = Convert.ToInt32(cmd.ExecuteScalar()); conn.Close(); // Create grids RadGrid[] GridName = new RadGrid[intTotalProcessTemplates]; for (int i = 0; i < intTotalProcessTemplates; ++i) { // Create mastertable GridName[i] = new RadGrid(); GridName[i].DataSource = GetDataTables.GetDataTable("SELECT * FROM ProcessTemplate WHERE ProcessTemplate_id = " + (i + 1)); GridName[i].MasterTableView.DataKeyNames = new string[] { "ProcessTemplate_id" }; GridName[i].Skin = "Black"; GridName[i].AutoGenerateColumns = false; GridName[i].AllowPaging = true; GridName[i].ShowStatusBar = true; // Columns create GridName[i].MasterTableView.Columns.Add(CreateGridColumn("Process name", "Name", 10.0)); GridName[i].MasterTableView.Columns.Add(CreateGridColumn("Process description", "Description", 80.0)); GridName[i].MasterTableView.Columns.Add(CreateGridColumn("Parent", "Parent", 10.0)); // Create detail table GridTableView tableViewStartProcesses = new GridTableView(GridName[i]); tableViewStartProcesses.Name = "DetailTable_" + i; tableViewStartProcesses.DataKeyNames = new string[] { "Process_id" }; tableViewStartProcesses.AutoGenerateColumns = false; tableViewStartProcesses.AllowPaging = true; tableViewStartProcesses.ShowFooter = true; tableViewStartProcesses.ShowHeadersWhenNoRecords = true; tableViewStartProcesses.CommandItemDisplay = GridCommandItemDisplay.Top; // Reset Counter //Count[i] = new int(); int counter = 0; CountItems countitem = new CountItems(); countitem.id = i; // Fix result from stored proc: GetAllProcessesAndSteps_SP DataSet _dataset = BLProcessesAndSteps.GetAllProcessesAndSteps((i + 1)); if (_dataset.Tables.Count > 0) { var query = from r in _dataset.Tables[0].AsEnumerable() where r.Field<decimal>("templateid") == (i + 1) // DO NOT REMOVE FROM STORED PROC select r; // Get total columns int TotalColumns = query.AsDataView().Table.Columns.Count; GridBoundColumn[] gbcColumnName = new GridBoundColumn[TotalColumns]; // Loop trough header items for (int j = 0; j < TotalColumns; ++j) { // Create detailcolumns gbcColumnName[j] = new GridBoundColumn(); gbcColumnName[j].ReadOnly = true; string strData = query.AsDataView().Table.Columns[j].ToString(); if (strData == "Process_id" || strData == "templateId" || strData == "ProcessName") { gbcColumnName[j].Visible = false; gbcColumnName[j].ReadOnly = true; } string strQuery = "SELECT DISTINCT(CriteriaType.Name), CriteriaType.CriteriaType_id, Process.ProcessTemplate_id FROM CriteriaType INNER JOIN CriteriaValue ON CriteriaType.CriteriaType_id = CriteriaValue.CriteriaType_id INNER JOIN Process ON CriteriaValue.Process_id = Process.Process_id WHERE Process.ProcessTemplate_id = " + (i + 1); DataTable dtCriteriaTypes = GetDataTables.GetDataTable(strQuery); string[] strValues = new string[dtCriteriaTypes.AsDataView().Table.Rows.Count]; for (int k = 0; k < dtCriteriaTypes.AsDataView().Table.Rows.Count; ++k) { strValues[k] = dtCriteriaTypes.AsDataView().Table.Rows[k]["Name"].ToString(); if (strData == strValues[k]) { gbcColumnName[j].ReadOnly = false ; counter++; } } countitem.count=counter; gbcColumnName[j].HeaderText = strData; gbcColumnName[j].DataField = strData; // Add detailcolumns tableViewStartProcesses.Columns.Add(gbcColumnName[j]); } Count.Add(countitem); // Add Details to table GridName[i].MasterTableView.DetailTables.Add(tableViewStartProcesses); // Rebind tableViewStartProcesses.DataSource = query.AsDataView(); } // Add to placeholder this.StartProcessPlaceHolder.Controls.Add(GridName[i]); // Events GridName[i].InsertCommand += new GridCommandEventHandler(OverviewProcess_InsertCommand); }<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RadGridDynamicColumns._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>Sample Rad Grid Example</title></head><body> <form id="form1" runat="server"><telerik:RadScriptManager runat="server" /> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="gvwPlayers" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" /> <telerik:RadGrid id="_radGrid" runat="server" OnNeedDataSource="radGrid_NeedDataSource" AllowSorting="true" AutoGenerateColumns="false" Width="100mm"> </telerik:RadGrid> </form></body></html>using System;using Telerik.Web.UI;namespace RadGridDynamicColumns{ // A test data class public class Widget { public string Name { get; set; } public string Description { get; set; } } public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this._radGrid.Columns.Add(new GridBoundColumn { HeaderText = "Name", DataField = "Name" }); this._radGrid.Columns.Add(new GridBoundColumn { HeaderText = "Description", DataField = "Description" }); } } public Widget[] TestData = new[] { new Widget { Name = "FooBar", Description = "WidgetFooBar" }, new Widget { Name = "Harold", Description = "Biggles" } }; protected void radGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { this._radGrid.DataSource = this.TestData; } }}