Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
94 views
I have a timeline view which looks like the attached image

What I would like to do is to have the names (ResourceType) on the top and the times on the left. Can this be done?

HC
Peter
Telerik team
 answered on 03 Feb 2010
3 answers
127 views

I am using a Telerik Grid Control with a custom column that has a image button that has the item command attribute set to allow the row to be selected when the image is clicked.

The tool tip on the image button works great, but does not work great and throws an "unspecified error" when the image button is clicked before tooltip appears.

I have even commented out the code in the command:

 

 

protected void OnAjaxUpdate(object sender, ToolTipUpdateEventArgs args)

 

{

 

this.UpdateToolTip(args.Value, args.UpdatePanel);

 

}

 

private void UpdateToolTip(string ImagePath, UpdatePanel panel)

 

{

 

Control ctrl = Page.LoadControl("/ControlLibrary/FileUI/FilePopUp.ascx");

 

ControlLibrary.FileUI.

FilePopUp popUp = (ControlLibrary.FileUI.FilePopUp)ctrl;

 

popUp.theFileImagePath = ImagePath;

panel.ContentTemplateContainer.Controls.Add(popUp);

}

 

protected void FilesGrid_ItemCommand(object source, GridCommandEventArgs e)

 

{

//if (e.CommandName == "Select")
//{
// foreach (GridItem GI in FilesGrid.SelectedItems
// {
        
// GI.Selected = false;
// }
//}
}

 

protected

 

void FilesGrid_ItemDataBound(object sender, GridItemEventArgs e)
{
if (Session["UserID"] == null)
{
Response.Redirect(
"/default.aspx");
}

if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
//To access a cell Text
if (item["Cost"].Text == "$0.00")
{
item[
"Cost"].Text = "Free";
}

 

 

ImageButton theImg = (ImageButton)item["ThumbnailCol"].FindControl("thumbnailLnk");
Literal theNumBoards = (Literal)item["BoardsCol"].FindControl("NumBoards");

 

theNumBoards.Text = thumbnailsTA.CountNumBoards(

Convert.ToInt64(theImg.ImageUrl)).ToString();

 

RadToolTipManager1.TargetControls.Add(theImg.ClientID,

"/services/GetThumbnail.ashx?ID=1&height=200&width=200&FileID=" + theImg.ImageUrl, true);

 

theImg.ImageUrl =

"/services/GetThumbnail.ashx?ID=1&width=83&height=67&FileID=" + theImg.ImageUrl;

 

 

if (item["Type"].Text == "1")
{
item[
"Type"].Text = "yes";
}
else
{
item[
"Type"].Text = "no";
}
}

 

}

 

 

<telerik:RadToolTipManager OnAjaxUpdate="OnAjaxUpdate" ID="RadToolTipManager1"
runat="server"
Animation="Resize" Skin="Web20" Width="250px" Height="250px"
OffsetY="15" ShowDelay="2000"
AutoCloseDelay="4000" style="display: none;">
</telerik:RadToolTipManager>


Rick

 

Svetlina Anati
Telerik team
 answered on 03 Feb 2010
5 answers
144 views
Hi,
We are finding that although the telerik control is accessible and prompts for accessible attributes, we are finding that the editor itself easily renders invalid HTML. Our content authors are going nuts because the use the tools provided within the editor, yet the final HTML is invalid.  It is not to do with XHTML or the fact that SharePoint strips out double quotes in tags, it is simple things like creating a table, then finding that it produces something like:
<table>
<thead>
</thead>
<tbody>
<tr>
<td>cell 1</td>
<td>cell 2</td>
</tr>
</tbody>
</table>

In this instance, the thead is invalid because it does not contain any rows or columns. Other instances that I have seen:

1) Telerik allows editors to create HTML like <a href=”...”><p>Hello World</p></a> or <span><p>Hello World</p></span>, which is invalid from a W3C HTML validation perspective.

Is this the way it is or is there more configuration or user training that needs to be done?
Stanimir
Telerik team
 answered on 03 Feb 2010
1 answer
171 views
Hi,
i have multiple tabs, with children tabs underneath.

if you are in tab1, you see tab1's children

TAB1 tab2
tab1_1  tab1_2 tab1_3

when clicking to tab2, i click tab2_3

tab1 TAB2
tab2_1 tab2_2 tab2_3

now click back to tab1, then click to tab2, how do i get current tab which is ( tab2_3 ) ?

visually i see that tab2_3 is selected, but the code to determine which tab is selected used below,
always tells me it's tab2_1, not tab2_3


      function onTabSelected(sender, args) { 
        alert(args.get_tab().get_value()); 
 
        return;} 

thanks.



Yana
Telerik team
 answered on 03 Feb 2010
1 answer
70 views
Hi,
Whatever folder in the folder tree I select, the CurrentFolder property shows the same, first folder name (I check it in the following OnLoad event). The same says <fileExplorer>.TreeView.SelectedNode.Text.
Is it a bug or should I do something to make it working or do I misunderstand the meaning of CurrentFolder and SelectedNode?

Regards
Tomasz
Fiko
Telerik team
 answered on 03 Feb 2010
3 answers
312 views
Recently we had our application scanned by the IBM App Rational Scan and in the scan we found that there were a number of XSS vulnerabilities due to Telerik controls.

The scan tried to successfully inject a script in the response and it was getting rendered?
Is there any possible solution that Telerik suggests to overcome this problem?

Script value of something like this shown below was injected.
<script>alert(176113)</script>


Sebastian
Telerik team
 answered on 03 Feb 2010
2 answers
124 views
Experts,

       What I'm trying to do is to load Radgrid2 with the same elements as RadGrid1.

       I have a hierarchical grid in Radgrid1. 
       When I click on expand or collapse button, I want to get the same data in RadGrid2.

       Actually, if I click on employeeID = 2 in Radgrid1, it expands, but nothing gets loaded in RadGrid2 ...
       Here is my code : just change method "GetConnectionString()" to fit your connection string

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RadGridDataOK14.aspx.cs" Inherits="RadGridDataOK14" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
 
 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
   <title></title> 
    <style type="text/css"> 
      .StaticColumn 
      {     
          font-family: Arial,Verdana, Helvetica; 
        font-size: 14px; 
        font-weight: normal;    
          border: none; 
          position: relative; 
      }  
 
    </style>      
</head> 
<body> 
    <form runat="server" id="mainForm" method="post">         
      <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> 
        <!-- content start --> 
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> 
            <AjaxSettings> 
                <telerik:AjaxSetting AjaxControlID="RadGrid1"> 
                    <UpdatedControls> 
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> 
                    </UpdatedControls> 
                </telerik:AjaxSetting> 
            </AjaxSettings> 
        </telerik:RadAjaxManager> 
        <table border="0" cellspacing="0" cellpadding="0" style="height:100%; width:100%">  
        <tr> 
        <td style="vertical-align:top;height:100%">         
        <telerik:RadGrid ID="RadGrid1" OnPreRender="RadGrid1_PreRender" runat="server" DataSourceID="SqlDataSource1" OnColumnCreated="RadGrid1_ColumnCreated" 
            OnItemCreated="RadGrid1_ItemCreated" OnItemDataBound="RadGrid1_ItemDataBound"> 
            <MasterTableView  HierarchyDefaultExpanded="false" EnableNoRecordsTemplate="false" HierarchyLoadMode="ServerBind" AllowSorting="true" Width="800px" 
                DataKeyNames="EmployeeID"> 
                <ItemStyle Wrap="false" Width="200px" Height="20px"/> 
                <AlternatingItemStyle Wrap="false" Width="200px" Height="20px"/> 
                <HeaderStyle Wrap="false" Width="1500px"/> 
                 
                <SelfHierarchySettings ParentKeyName="ReportsTo" KeyName="EmployeeID"/> 
            </MasterTableView> 
             
            <ClientSettings AllowExpandCollapse="true">             
            </ClientSettings> 
        </telerik:RadGrid> 
        </td> 
        <td class="StaticColumn" style="vertical-align:top;height:100%;">  
        <telerik:RadGrid ID="RadGrid2" ShowStatusBar="true" 
            runat="server" AutoGenerateColumns="False" PageSize="20" AllowSorting="True" AllowMultiRowSelection="False" Width="50%" 
            AllowPaging="True" GridLines="None"> 
            <PagerStyle Mode="NumericPages"></PagerStyle> 
            <MasterTableView ItemStyle-Wrap="false" Height="20px" HierarchyLoadMode="ServerBind" CanRetrieveAllData="true">                 
                <Columns> 
                    <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton" 
                        DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton" 
                        DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton" 
                        DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" 
                        DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton" 
                        DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton" 
                        DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton" 
                        DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton" 
                        DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" 
                        DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton" 
                        DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn>      
                    <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton" 
                        DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton" 
                        DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton" 
                        DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" 
                        DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton" 
                        DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton" 
                        DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton" 
                        DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton" 
                        DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" 
                        DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton" 
                        DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="20px"> 
                    </telerik:GridBoundColumn>                                                         
                </Columns> 
            </MasterTableView> 
            <clientsettings allowexpandcollapse="false" >                 
                    <Scrolling AllowScroll="true" UseStaticHeaders="True"></Scrolling> 
            </clientsettings> 
        </telerik:RadGrid> 
        </td> 
        </tr> 
        </table>         
        <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" 
            ProviderName="System.Data.SqlClient" SelectCommand="SELECT EmployeeID, LastName, FirstName, Title, ReportsTo FROM Employees" 
            runat="server"></asp:SqlDataSource> 
        <!-- content end --> 
    </form> 
</body> 
</html> 
 
-------------------------------------------------------------------- 
-------------------------------------------------------------------- 
 
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; 
using System.Reflection; 
using System.Data; 
using System.Data.SqlClient; 
 
public partial class RadGridDataOK14 : System.Web.UI.Page 
{ 
    protected void RadGrid1_ColumnCreated(object sender, GridColumnCreatedEventArgs e) 
    { 
        if (e.Column is GridExpandColumn) 
        { 
            e.Column.Visible = false; 
        } 
        else if (e.Column is GridBoundColumn) 
        { 
            e.Column.HeaderStyle.Width = Unit.Pixel(100); 
        } 
    } 
 
    public void Page_Load(object sender, EventArgs e) 
    { 
        bindGrid2(); 
        if (Assembly.GetAssembly(typeof(ScriptManager)).FullName.IndexOf("3.5") != -1) 
        { 
            RadGrid1.MasterTableView.FilterExpression = @"it[""ReportsTo""] = Convert.DBNull"; 
        } 
        else 
        { 
            RadGrid1.MasterTableView.FilterExpression = "ReportsTo IS NULL"; 
        } 
    } 
 
    public void Page_PreRenderComplete(object sender, EventArgs e) 
    { 
        HideExpandColumnRecursive(RadGrid1.MasterTableView); 
    
        string ActualNodes = string.Empty; 
 
        foreach (GridDataItem dataItem in RadGrid1.Items) 
        { 
            if (dataItem.Visible) 
            { 
                ActualNodes += dataItem["EmployeeID"].Text + ","; 
            } 
        } 
 
 
        if (ActualNodes.Length > 0) 
            ActualNodesActualNodes = ActualNodes.Substring(0, ActualNodes.Length - 1); 
 
        RadGrid2.Controls.Clear(); 
        RadGrid2.DataSource = getDetails(ActualNodes); 
        RadGrid2.DataBind(); 
        
        
    } 
 
    public void HideExpandColumnRecursive(GridTableView tableView) 
    { 
        GridItem[] nestedViewItems = tableView.GetItems(GridItemType.NestedView); 
        foreach (GridNestedViewItem nestedViewItem in nestedViewItems) 
        { 
            foreach (GridTableView nestedView in nestedViewItem.NestedTableViews) 
            { 
                nestedView.Style["border"] = "0"; 
 
                Button MyExpandCollapseButton = (Button)nestedView.ParentItem.FindControl("MyExpandCollapseButton"); 
                if (nestedView.Items.Count == 0) 
                { 
                    if (MyExpandCollapseButton != null) 
                    { 
                        MyExpandCollapseButton.Style["visibility"] = "hidden"; 
                    } 
                    nestedViewItem.Visible = false; 
                } 
                else 
                { 
                    if (MyExpandCollapseButton != null) 
                    { 
                        MyExpandCollapseButton.Style.Remove("visibility"); 
                    } 
                } 
 
                if (nestedView.HasDetailTables) 
                { 
                    HideExpandColumnRecursive(nestedView); 
                } 
            } 
        } 
    } 
 
    protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) 
    { 
        CreateExpandCollapseButton(e.Item, "EmployeeID"); 
 
        if (e.Item is GridHeaderItem && e.Item.OwnerTableView != RadGrid1.MasterTableView) 
        { 
            e.Item.Style["display"] = "none"; 
        } 
 
        if (e.Item is GridNestedViewItem) 
        { 
            e.Item.Cells[0].Visible = false; 
        } 
    } 
 
    protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
    { 
        CreateExpandCollapseButton(e.Item, "EmployeeID"); 
    } 
 
    public void CreateExpandCollapseButton(GridItem item, string columnUniqueName) 
    { 
        if (item is GridDataItem) 
        { 
            if (item.FindControl("MyExpandCollapseButton") == null) 
            { 
                Button button = new Button(); 
                button.Click += new EventHandler(button_Click); 
                button.CommandName = "ExpandCollapse"; 
                button.CssClass = (item.Expanded) ? "rgCollapse" : "rgExpand"; 
                button.ID = "MyExpandCollapseButton"; 
 
                if (item.OwnerTableView.HierarchyLoadMode == GridChildLoadMode.Client) 
                { 
                    string script = String.Format(@"$find(""{0}"")._toggleExpand(this, event); return false;", item.Parent.Parent.ClientID); 
 
                    button.OnClientClick = script; 
                } 
 
                int level = item.ItemIndexHierarchical.Split(':').Length; 
                if (level > 1) 
                { 
                    button.Style["margin-left"] = level + 10 + "px"; 
                    button.Text = "-"; 
                } 
 
 
                TableCell cell = ((GridDataItem)item)[columnUniqueName]; 
                cell.Controls.Add(button); 
                /* 
                if (item.Expanded) 
                    cell.Controls.Add(new LiteralControl("&nbsp;-&nbsp;")); 
                else 
                     
                 */ 
                cell.Controls.Add(new LiteralControl("&nbsp;")); 
                cell.Controls.Add(new LiteralControl(((GridDataItem)item).GetDataKeyValue(columnUniqueName).ToString())); 
            } 
        } 
    } 
 
    protected void RadGrid1_PreRender(object sender, EventArgs e) 
    { 
 
        string ActualNodes = string.Empty; 
 
        foreach (GridDataItem dataItem in RadGrid1.Items) 
        { 
            if (dataItem.Visible) 
            { 
                ActualNodes += dataItem["EmployeeID"].Text + ","; 
            } 
        } 
 
 
        if (ActualNodes.Length > 0) 
            ActualNodesActualNodes = ActualNodes.Substring(0, ActualNodes.Length - 1); 
 
        RadGrid2.Controls.Clear(); 
        RadGrid2.DataSource = getDetails(ActualNodes); 
        RadGrid2.DataBind(); 
        //Response.Write("<script> alert(" + sTest + ");</script>"); 
    } 
 
 
    void button_Click(object sender, EventArgs e) 
    { 
        ((Button)sender).CssClass = (((Button)sender).CssClass == "rgExpand") ? "rgCollapse" : "rgExpand";        
    } 
 
 
    private void bindGrid2() 
    { 
 
        RadGrid2.Controls.Clear(); 
        string initialNodes = string.Empty; 
        for (int m = 0; m < RadGrid1.Items.Count; m++) 
        { 
            if (!RadGrid1.Items[m]["EmployeeID"].Text.ToLower().Equals("&nbsp;") && RadGrid1.Items[m].Visible) 
                initialNodes += RadGrid1.Items[m]["EmployeeID"].Text + ","; 
        } 
 
        if (initialNodes.Length > 0) 
        { 
            RadGrid2.DataSource = getEmployees(initialNodes.Substring(0, initialNodes.Length - 1)); 
        } 
        else 
            RadGrid2.DataSource = getEmployees(""); 
 
        RadGrid2.DataBind(); 
    } 
 
    private DataView getEmployees(string initialNodes) 
    { 
        DataSet ds = new DataSet(); 
 
        string sqlFinal = string.Empty; 
        if (!initialNodes.Equals(string.Empty)) 
        { 
            sqlFinal = "Where EmployeeID in (" + initialNodes + ")"; 
        } 
 
        using (SqlConnection conn = new SqlConnection()) 
        { 
            conn.ConnectionString = GetConnectionString(); 
            SqlCommand cmd = new SqlCommand("SELECT [EmployeeID], [LastName], [FirstName], [Title], [ReportsTo] FROM [Employees] " + sqlFinal, conn); 
            conn.Open(); 
 
            SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); 
 
            sqlAdapter.Fill(ds); 
        } 
 
        DataView dv = new DataView(ds.Tables[0]); 
        return dv; 
    } 
 
    private DataTable getChildNodesByID(string ParentID) 
    { 
        DataSet ds = new DataSet(); 
        string sql = "SELECT [EmployeeID], [LastName], [FirstName], [Title], [ReportsTo] FROM [Employees] Where ReportsTo = " + ParentID; 
 
        using (SqlConnection conn = new SqlConnection()) 
        { 
            conn.ConnectionString = GetConnectionString(); 
            SqlCommand cmd = new SqlCommand(sql, conn); 
            conn.Open(); 
 
            SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); 
            sqlAdapter.Fill(ds); 
        } 
 
        DataTable dt = new DataTable(); 
        if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) 
            return ds.Tables[0]; 
        else 
            return null; 
    } 
 
    private DataView getDetails(string ActualNodes) 
    { 
        DataSet ds = new DataSet(); 
 
 
        //string noeuds = ActualNodes.Substring(0, ActualNodes.Length - 1); 
 
        string[] tabNoeuds = ActualNodes.Split(','); 
        string swhen = " CASE "; 
 
        for (int i = 0; i < tabNoeuds.Length; i++) 
        { 
            swhen += " WHEN EmployeeID = " + tabNoeuds[i] + " THEN " + (i + 1) + " "; 
        } 
        swhen += " END "; 
 
        string sql = "SELECT [EmployeeID], [LastName], [FirstName], [Title], [ReportsTo] FROM [Employees] Where EmployeeID in (" + ActualNodes + ")"; 
        sql += " ORDER BY " + swhen; 
        using (SqlConnection conn = new SqlConnection()) 
        { 
            conn.ConnectionString = GetConnectionString(); 
            SqlCommand cmd = new SqlCommand(sql, conn); 
            conn.Open(); 
 
            SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); 
            sqlAdapter.Fill(ds); 
        } 
 
        DataView dv = new DataView(ds.Tables[0]); 
        return dv; 
    } 
 
 
 
    static private string GetConnectionString() 
    { 
        return "server=STATION00374;database=Northwind;Integrated Security=SSPI;"; 
    } 
} 
 
 

RadTony
Top achievements
Rank 1
 answered on 03 Feb 2010
1 answer
205 views
I am have radgrid that is misbehaving.  On the action event Itemcommand I want to load come pointers into a session variable.  Problem is that for whatever reason when I leave the scope of the function the Session variable is null.  I believe it is something to do with the ajax control.  Below is the page I am working on.  Please help...stuck.
<%@ Page Title="" Language="C#" MasterPageFile="~/ePacket.master" AutoEventWireup="true" 
    CodeFile="ManagePackets.aspx.cs" Inherits="ManagePackets" %>  
 
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
    Namespace="System.Web.UI" TagPrefix="asp" %>  
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">  
    <style type="text/css">  
        .style4  
        {  
            width: 669px;  
        }  
        .style5  
        {  
            width: 80px;  
        }  
        .headerOffice07  
        {  
            background: #d6e5f3 0 -5900px repeat-x url('images/sprite.gif');  
        }  
        .style6  
        {  
            width: 165px;  
        }  
        .fileTypes  
        {  
            float: left;  
        }  
    </style>  
</asp:Content>  
<asp:Content ID="Content2" ContentPlaceHolderID="contBody" runat="Server">  
    <br />  
    <div align="center">  
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1" 
            EnableHistory="True">  
            <AjaxSettings>  
                <telerik:AjaxSetting AjaxControlID="cmdAdd">  
                    <UpdatedControls>  
                        <telerik:AjaxUpdatedControl ControlID="panTitleForpanPackets" />  
                        <telerik:AjaxUpdatedControl ControlID="panPackets"></telerik:AjaxUpdatedControl>  
                        <telerik:AjaxUpdatedControl ControlID="panPacketDetails" />  
                    </UpdatedControls>  
                    <UpdatedControls>  
                        <telerik:AjaxUpdatedControl ControlID="panTitleForpanPackets" />  
                    </UpdatedControls>  
                    <UpdatedControls>  
                    </UpdatedControls>  
                </telerik:AjaxSetting>  
                <telerik:AjaxSetting AjaxControlID="gridPackets">  
                    <UpdatedControls>  
                        <telerik:AjaxUpdatedControl ControlID="panTitleForpanPackets" />  
                        <telerik:AjaxUpdatedControl ControlID="panPackets" />  
                        <telerik:AjaxUpdatedControl ControlID="panPacketDetails" />  
                    </UpdatedControls>  
                </telerik:AjaxSetting>  
            </AjaxSettings>  
        </telerik:RadAjaxManager>  
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Office2007">  
        </telerik:RadAjaxLoadingPanel>  
        <asp:Panel runat="server" ID="panTitleForpanPackets" Width='900px'>  
            <table width='100%'>  
                <tr>  
                    <td align="left" class="style5">  
                        <asp:LinkButton ID="cmdAdd" Font-Size="Small" runat="server" OnClick="cmdAdd_Click">Create Packet</asp:LinkButton>  
                    </td>  
                    <td align="center" class="style4">  
                        <asp:Label ID="Label1" runat="server" Text="Current Packets" Font-Bold="True" Font-Size="Medium" 
                            ForeColor="#00156E"></asp:Label>  
                    </td>  
                    <td>  
                    </td>  
                </tr>  
            </table>  
        </asp:Panel>  
        <asp:Panel ID="panPackets" Width='900px' runat="server">  
            <telerik:RadGrid ID="gridPackets" runat="server" DataSourceID="AllPackets" GridLines="None" 
                Skin="Office2007" AllowPaging="True" PageSize="15" AllowFilteringByColumn="True" 
                OnItemCommand="RadGrid2_ItemCommand">  
                <MasterTableView AutoGenerateColumns="False" DataSourceID="AllPackets">  
                    <RowIndicatorColumn>  
                        <HeaderStyle Width="20px" />  
                    </RowIndicatorColumn>  
                    <ExpandCollapseColumn>  
                        <HeaderStyle Width="20px" />  
                    </ExpandCollapseColumn>  
                    <HeaderStyle HorizontalAlign="Left" />  
                    <ItemStyle HorizontalAlign="Left" />  
                    <AlternatingItemStyle HorizontalAlign="Left" />  
                    <FilterItemStyle HorizontalAlign="Left" />  
                    <Columns>  
                        <telerik:GridTemplateColumn>  
                            <FilterTemplate>  
                                Clear filters  
                                <asp:ImageButton ID="btnShowAll" runat="server" ImageUrl="Images/filterCancel.gif" 
                                    OnClick="btnShowAll_Click" Style="vertical-align: middle" />  
                            </FilterTemplate>  
                            <ItemTemplate>  
                                <asp:LinkButton ID="LinkButton1" CommandArgument='<%# Eval("PacketID") %>' CommandName="Details" 
                                    runat="server">  
                      Details</asp:LinkButton>  
                            </ItemTemplate>  
                        </telerik:GridTemplateColumn>  
                        <telerik:GridBoundColumn DataField="MeetingName" HeaderText="Meeting / Group Name" 
                            SortExpression="MeetingName" UniqueName="MeetingName">  
                            <FilterTemplate>  
                                <telerik:RadComboBox ID="ddlMeetingNameFilter" DataSourceID="SqlDataSource2" DataTextField="MeetingName" 
                                    DataValueField="MeetingName" AppendDataBoundItems="true" SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("MeetingName").CurrentFilterValue %>'  
                                    runat="server" OnClientSelectedIndexChanged="MeetingIndexChanged" DropDownWidth="230px">  
                                    <Items>  
                                        <telerik:RadComboBoxItem Text="All" />  
                                    </Items>  
                                </telerik:RadComboBox>  
                                <telerik:RadScriptBlock ID="RadScriptBlock4" runat="server">  
 
                                    <script type="text/javascript">  
                                        function MeetingIndexChanged(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            tableView.filter("MeetingName", args.get_item().get_value(), "EqualTo");  
 
                                        }  
                                    </script>  
 
                                </telerik:RadScriptBlock>  
                            </FilterTemplate>  
                        </telerik:GridBoundColumn>  
                        <telerik:GridBoundColumn DataField="PublishDate" DataType="System.DateTime" HeaderText="Date Published" 
                            SortExpression="PublishDate" DataFormatString="{0:D}" UniqueName="PublishDate">  
                            <FilterTemplate>  
                                From  
                                <telerik:RadDatePicker ID="FromOrderDatePicker" runat="server" Width="100px" Skin="Office2007" 
                                    ClientEvents-OnDateSelected="FromDateSelected" DbSelectedDate='<%# startDate %>' />  
                                to  
                                <telerik:RadDatePicker ID="ToOrderDatePicker" runat="server" Width="100px" Skin="Office2007" 
                                    ClientEvents-OnDateSelected="ToDateSelected" DbSelectedDate='<%# endDate %>' />  
                                <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">  
 
                                    <script type="text/javascript">  
                                        function FromDateSelected(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            var ToPicker = $find('<%# ((GridItem)Container).FindControl("ToOrderDatePicker").ClientID %>');  
 
                                            var fromDate = FormatSelectedDate(sender);  
                                            var toDate = FormatSelectedDate(ToPicker);  
 
                                            tableView.filter("PublishDate", fromDate + " " + toDate, "Between");  
 
                                        }  
                                        function ToDateSelected(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            var FromPicker = $find('<%# ((GridItem)Container).FindControl("FromOrderDatePicker").ClientID %>');  
 
                                            var fromDate = FormatSelectedDate(FromPicker);  
                                            var toDate = FormatSelectedDate(sender);  
 
                                            tableView.filter("PublishDate", fromDate + " " + toDate, "Between");  
                                        }  
                                        function FormatSelectedDate(picker) {  
                                            var date = picker.get_selectedDate();  
                                            var dateInput = picker.get_dateInput();  
                                            var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());  
 
                                            return formattedDate;  
                                        }  
                                    </script>  
 
                                </telerik:RadScriptBlock>  
                            </FilterTemplate>  
                        </telerik:GridBoundColumn>  
                        <telerik:GridBoundColumn DataField="FiscalYear" HeaderText="Fiscal Year" SortExpression="FiscalYear" 
                            UniqueName="FiscalYear">  
                            <FilterTemplate>  
                                <telerik:RadComboBox ID="ddlFiscalYear" Width="100px" DataSourceID="SqlDataSource3" 
                                    DataTextField="FiscalYear" DataValueField="FiscalYear" AppendDataBoundItems="true" 
                                    SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("FiscalYear").CurrentFilterValue %>'  
                                    runat="server" OnClientSelectedIndexChanged="TitleIndexChanged" DropDownWidth="100px">  
                                    <Items>  
                                        <telerik:RadComboBoxItem Text="All" />  
                                    </Items>  
                                </telerik:RadComboBox>  
                                <telerik:RadScriptBlock ID="RadScriptBlock3" runat="server">  
 
                                    <script type="text/javascript">  
                                        function TitleIndexChanged(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            tableView.filter("FiscalYear", args.get_item().get_value(), "EqualTo");  
 
                                        }  
                                    </script>  
 
                                </telerik:RadScriptBlock>  
                            </FilterTemplate>  
                        </telerik:GridBoundColumn>  
                        <telerik:GridBoundColumn DataField="Name" HeaderText="Published By" ReadOnly="True" 
                            SortExpression="Name" UniqueName="Name">  
                            <FilterTemplate>  
                                <telerik:RadComboBox ID="ddlNameFilter" Width="100px" DataSourceID="SqlDataSource4" 
                                    DataTextField="Name" DataValueField="Name" AppendDataBoundItems="true" SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("Name").CurrentFilterValue %>'  
                                    runat="server" OnClientSelectedIndexChanged="NameIndexChanged" DropDownWidth="120px">  
                                    <Items>  
                                        <telerik:RadComboBoxItem Text="All" />  
                                    </Items>  
                                </telerik:RadComboBox>  
                                <telerik:RadScriptBlock ID="RadScriptBlock5" runat="server">  
 
                                    <script type="text/javascript">  
                                        function NameIndexChanged(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            tableView.filter("Name", args.get_item().get_value(), "EqualTo");  
 
                                        }  
                                    </script>  
 
                                </telerik:RadScriptBlock>  
                            </FilterTemplate>  
                        </telerik:GridBoundColumn>  
                    </Columns>  
                </MasterTableView>  
            </telerik:RadGrid>  
            <asp:SqlDataSource ID="AllPackets" runat="server" ConnectionString="<%$ ConnectionStrings:WebConnectionString %>" 
                SelectCommand="Select A.PacketID,MeetingName,A.PublishDate,FiscalYear,ISNULL(D.FirstName +' '+D.LastName,'No Name') as 'Name' From ePacket_Packet A Join ePacket_PacketPerms B ON (A.MeetingID=B.PacketID)
Join ePacket_Meeting C on (A.MeetingID=C.MeetingID) Left Outer Join COAUsers D on (A.PublishedBy=D.UserID)
 Where A.Archive='No' and B.Archive='No'  and B.UserID=@UserID
Order By MeetingName ASC,FiscalYear DESC,PublishDate DESC">  
                <SelectParameters>  
                    <asp:SessionParameter Name="UserID" SessionField="packet" />  
                </SelectParameters>  
            </asp:SqlDataSource>  
            <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:WebConnectionString %>" 
                SelectCommand="Select * From ePacket_Meeting A Join ePacket_PacketPerms B ON (A.MeetingID=B.PacketID) Where B.UserID=@UserID and B.Archive='No' and A.Archive='No' Order By MeetingName ASC">  
                <SelectParameters>  
                    <asp:SessionParameter Name="UserID" SessionField="Packet" />  
                </SelectParameters>  
            </asp:SqlDataSource>  
            <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:WebConnectionString %>" 
                SelectCommand="Select Distinct FiscalYear From ePacket_Packet Where Archive='No' Order By FiscalYear DESC">  
            </asp:SqlDataSource>  
            <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:WebConnectionString %>" 
                SelectCommand="Select  Distinct FirstName+' '+LastName as 'Name' From COAUsers A Join ePacket_Packet B on (A.UserID=B.PublishedBy)
Where B.Archive='No'"></asp:SqlDataSource>  
        </asp:Panel>  
        <br />  
        <asp:Panel ID="panPacketDetails" Width='600px' runat="server" BorderColor="Black" 
            BorderStyle="Solid" BorderWidth="1px" Visible="False">  
            <table width='100%'>  
                <tr>  
                    <td align="center" colspan='2' class="headerOffice07">  
                        <asp:Label ID="lblHeader" Font-Size="Medium" runat="server" Text="Add New Packet" 
                            Font-Bold="True" ForeColor="#00156E"></asp:Label>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left" class="style6">  
                        <asp:Label ID="Label2" runat="server" Text="Select Meeting / Group:" Font-Size='Small'></asp:Label>  
                    </td>  
                    <td align="left">  
                        <telerik:RadComboBox ID="ddlMeetingType" runat="server" Skin="Office2007" Width="300px" 
                            AutoPostBack="True" OnSelectedIndexChanged="ddlMeetingType_SelectedIndexChanged">  
                        </telerik:RadComboBox>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left">  
                        <asp:Label ID="Label4" runat="server" Text="Publish Date:" Font-Size="Small"></asp:Label>  
                    </td>  
                    <td align="left">  
                        <telerik:RadDatePicker ID="dPickPublishDate" runat="server" Skin="Office2007" Width="300px">  
                            <Calendar Skin="Office2007" UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False" 
                                ViewSelectorText="x">  
                            </Calendar>  
                            <DatePopupButton HoverImageUrl="" ImageUrl="" />  
                        </telerik:RadDatePicker>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left">  
                        <asp:Label ID="Label3" Font-Size="Small" runat="server" Text="Available File Types:"></asp:Label>  
                    </td>  
                    <td align="left">  
                        <asp:Panel ID="panAgenda" runat="server" Width="50px" CssClass="fileTypes">  
                            <asp:LinkButton ID="cmdAgenda" runat="server" Font-Size="Small" ForeColor="Red" OnClick="cmdAgenda_Click">Agenda</asp:LinkButton>&nbsp;</asp:Panel>  
                        <asp:Panel ID="panMinutes" CssClass="fileTypes" runat="server" Width="55px">  
                            <asp:LinkButton ID="cmdMinutes" runat="server" Font-Size="Small" ForeColor="Red" 
                                Height="16px">Minutes</asp:LinkButton>&nbsp;</asp:Panel>  
                        <asp:Panel ID="panCOW" runat="server" Width="50px" CssClass="fileTypes">  
                            <asp:LinkButton ID="cmdCOW" runat="server" Font-Size="Small" ForeColor="Red">C.O.W</asp:LinkButton>&nbsp;</asp:Panel>  
                        <asp:Panel ID="panPacket" runat="server" Width="50px" CssClass="fileTypes">  
                            <asp:LinkButton ID="cmdPacket" runat="server" Font-Size="Small" ForeColor="Red">Packet</asp:LinkButton>&nbsp;</asp:Panel>  
                        <asp:Panel ID="panOther" runat="server" Width="75px" CssClass="fileTypes">  
                            <asp:LinkButton ID="cmdOther" runat="server" Font-Size="Small" ForeColor="Red">Other Files</asp:LinkButton>&nbsp;</asp:Panel>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left">  
                        <asp:Label ID="lblLabelFileType" runat="server" Font-Size="Small" Text="File Type:"></asp:Label>  
                    </td>  
                    <td align="left">  
                        <asp:Label ID="lblFileType" runat="server" Font-Size="Small" Text="No File Type Selected"></asp:Label>  
                    </td>  
                </tr>  
                <tr>  
                    <td>  
                        &nbsp;  
                    </td>  
                    <td align="left">  
                        <asp:Table ID="tabFiles" Font-Size="Small" runat="server">  
                        </asp:Table>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left" class="style6">  
                    </td>  
                    <td align="left">  
                        <telerik:RadUpload ID="RadUpload1" runat="server" MaxFileInputsCount="1" Skin="Office2007" 
                            Enabled="False">  
                        </telerik:RadUpload>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="center" colspan='2'>  
                        <asp:ImageButton ID="cmdSubmit" runat="server" />&nbsp;  
                        <asp:ImageButton ID="cmdCancel" runat="server" /><asp:HiddenField ID="PacketID" runat="server" />  
                    </td>  
                </tr>  
            </table>  
        </asp:Panel>  
    </div>  
</asp:Content>  
 
<%@ Page Title="" Language="C#" MasterPageFile="~/ePacket.master" AutoEventWireup="true" 
    CodeFile="ManagePackets.aspx.cs" Inherits="ManagePackets" %>  
 
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
    Namespace="System.Web.UI" TagPrefix="asp" %>  
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">  
    <style type="text/css">  
        .style4  
        {  
            width: 669px;  
        }  
        .style5  
        {  
            width: 80px;  
        }  
        .headerOffice07  
        {  
            background: #d6e5f3 0 -5900px repeat-x url('images/sprite.gif');  
        }  
        .style6  
        {  
            width: 165px;  
        }  
        .fileTypes  
        {  
            float: left;  
        }  
    </style>  
</asp:Content>  
<asp:Content ID="Content2" ContentPlaceHolderID="contBody" runat="Server">  
    <br />  
    <div align="center">  
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1" 
            EnableHistory="True">  
            <AjaxSettings>  
                <telerik:AjaxSetting AjaxControlID="cmdAdd">  
                    <UpdatedControls>  
                        <telerik:AjaxUpdatedControl ControlID="panTitleForpanPackets" />  
                        <telerik:AjaxUpdatedControl ControlID="panPackets"></telerik:AjaxUpdatedControl>  
                        <telerik:AjaxUpdatedControl ControlID="panPacketDetails" />  
                    </UpdatedControls>  
                    <UpdatedControls>  
                        <telerik:AjaxUpdatedControl ControlID="panTitleForpanPackets" />  
                    </UpdatedControls>  
                    <UpdatedControls>  
                    </UpdatedControls>  
                </telerik:AjaxSetting>  
                <telerik:AjaxSetting AjaxControlID="gridPackets">  
                    <UpdatedControls>  
                        <telerik:AjaxUpdatedControl ControlID="panTitleForpanPackets" />  
                        <telerik:AjaxUpdatedControl ControlID="panPackets" />  
                        <telerik:AjaxUpdatedControl ControlID="panPacketDetails" />  
                    </UpdatedControls>  
                </telerik:AjaxSetting>  
            </AjaxSettings>  
        </telerik:RadAjaxManager>  
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Office2007">  
        </telerik:RadAjaxLoadingPanel>  
        <asp:Panel runat="server" ID="panTitleForpanPackets" Width='900px'>  
            <table width='100%'>  
                <tr>  
                    <td align="left" class="style5">  
                        <asp:LinkButton ID="cmdAdd" Font-Size="Small" runat="server" OnClick="cmdAdd_Click">Create Packet</asp:LinkButton>  
                    </td>  
                    <td align="center" class="style4">  
                        <asp:Label ID="Label1" runat="server" Text="Current Packets" Font-Bold="True" Font-Size="Medium" 
                            ForeColor="#00156E"></asp:Label>  
                    </td>  
                    <td>  
                    </td>  
                </tr>  
            </table>  
        </asp:Panel>  
        <asp:Panel ID="panPackets" Width='900px' runat="server">  
            <telerik:RadGrid ID="gridPackets" runat="server" DataSourceID="AllPackets" GridLines="None" 
                Skin="Office2007" AllowPaging="True" PageSize="15" AllowFilteringByColumn="True" 
                OnItemCommand="RadGrid2_ItemCommand">  
                <MasterTableView AutoGenerateColumns="False" DataSourceID="AllPackets">  
                    <RowIndicatorColumn>  
                        <HeaderStyle Width="20px" />  
                    </RowIndicatorColumn>  
                    <ExpandCollapseColumn>  
                        <HeaderStyle Width="20px" />  
                    </ExpandCollapseColumn>  
                    <HeaderStyle HorizontalAlign="Left" />  
                    <ItemStyle HorizontalAlign="Left" />  
                    <AlternatingItemStyle HorizontalAlign="Left" />  
                    <FilterItemStyle HorizontalAlign="Left" />  
                    <Columns>  
                        <telerik:GridTemplateColumn>  
                            <FilterTemplate>  
                                Clear filters  
                                <asp:ImageButton ID="btnShowAll" runat="server" ImageUrl="Images/filterCancel.gif" 
                                    OnClick="btnShowAll_Click" Style="vertical-align: middle" />  
                            </FilterTemplate>  
                            <ItemTemplate>  
                                <asp:LinkButton ID="LinkButton1" CommandArgument='<%# Eval("PacketID") %>' CommandName="Details" 
                                    runat="server">  
                      Details</asp:LinkButton>  
                            </ItemTemplate>  
                        </telerik:GridTemplateColumn>  
                        <telerik:GridBoundColumn DataField="MeetingName" HeaderText="Meeting / Group Name" 
                            SortExpression="MeetingName" UniqueName="MeetingName">  
                            <FilterTemplate>  
                                <telerik:RadComboBox ID="ddlMeetingNameFilter" DataSourceID="SqlDataSource2" DataTextField="MeetingName" 
                                    DataValueField="MeetingName" AppendDataBoundItems="true" SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("MeetingName").CurrentFilterValue %>'  
                                    runat="server" OnClientSelectedIndexChanged="MeetingIndexChanged" DropDownWidth="230px">  
                                    <Items>  
                                        <telerik:RadComboBoxItem Text="All" />  
                                    </Items>  
                                </telerik:RadComboBox>  
                                <telerik:RadScriptBlock ID="RadScriptBlock4" runat="server">  
 
                                    <script type="text/javascript">  
                                        function MeetingIndexChanged(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            tableView.filter("MeetingName", args.get_item().get_value(), "EqualTo");  
 
                                        }  
                                    </script>  
 
                                </telerik:RadScriptBlock>  
                            </FilterTemplate>  
                        </telerik:GridBoundColumn>  
                        <telerik:GridBoundColumn DataField="PublishDate" DataType="System.DateTime" HeaderText="Date Published" 
                            SortExpression="PublishDate" DataFormatString="{0:D}" UniqueName="PublishDate">  
                            <FilterTemplate>  
                                From  
                                <telerik:RadDatePicker ID="FromOrderDatePicker" runat="server" Width="100px" Skin="Office2007" 
                                    ClientEvents-OnDateSelected="FromDateSelected" DbSelectedDate='<%# startDate %>' />  
                                to  
                                <telerik:RadDatePicker ID="ToOrderDatePicker" runat="server" Width="100px" Skin="Office2007" 
                                    ClientEvents-OnDateSelected="ToDateSelected" DbSelectedDate='<%# endDate %>' />  
                                <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">  
 
                                    <script type="text/javascript">  
                                        function FromDateSelected(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            var ToPicker = $find('<%# ((GridItem)Container).FindControl("ToOrderDatePicker").ClientID %>');  
 
                                            var fromDate = FormatSelectedDate(sender);  
                                            var toDate = FormatSelectedDate(ToPicker);  
 
                                            tableView.filter("PublishDate", fromDate + " " + toDate, "Between");  
 
                                        }  
                                        function ToDateSelected(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            var FromPicker = $find('<%# ((GridItem)Container).FindControl("FromOrderDatePicker").ClientID %>');  
 
                                            var fromDate = FormatSelectedDate(FromPicker);  
                                            var toDate = FormatSelectedDate(sender);  
 
                                            tableView.filter("PublishDate", fromDate + " " + toDate, "Between");  
                                        }  
                                        function FormatSelectedDate(picker) {  
                                            var date = picker.get_selectedDate();  
                                            var dateInput = picker.get_dateInput();  
                                            var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());  
 
                                            return formattedDate;  
                                        }  
                                    </script>  
 
                                </telerik:RadScriptBlock>  
                            </FilterTemplate>  
                        </telerik:GridBoundColumn>  
                        <telerik:GridBoundColumn DataField="FiscalYear" HeaderText="Fiscal Year" SortExpression="FiscalYear" 
                            UniqueName="FiscalYear">  
                            <FilterTemplate>  
                                <telerik:RadComboBox ID="ddlFiscalYear" Width="100px" DataSourceID="SqlDataSource3" 
                                    DataTextField="FiscalYear" DataValueField="FiscalYear" AppendDataBoundItems="true" 
                                    SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("FiscalYear").CurrentFilterValue %>'  
                                    runat="server" OnClientSelectedIndexChanged="TitleIndexChanged" DropDownWidth="100px">  
                                    <Items>  
                                        <telerik:RadComboBoxItem Text="All" />  
                                    </Items>  
                                </telerik:RadComboBox>  
                                <telerik:RadScriptBlock ID="RadScriptBlock3" runat="server">  
 
                                    <script type="text/javascript">  
                                        function TitleIndexChanged(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            tableView.filter("FiscalYear", args.get_item().get_value(), "EqualTo");  
 
                                        }  
                                    </script>  
 
                                </telerik:RadScriptBlock>  
                            </FilterTemplate>  
                        </telerik:GridBoundColumn>  
                        <telerik:GridBoundColumn DataField="Name" HeaderText="Published By" ReadOnly="True" 
                            SortExpression="Name" UniqueName="Name">  
                            <FilterTemplate>  
                                <telerik:RadComboBox ID="ddlNameFilter" Width="100px" DataSourceID="SqlDataSource4" 
                                    DataTextField="Name" DataValueField="Name" AppendDataBoundItems="true" SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("Name").CurrentFilterValue %>'  
                                    runat="server" OnClientSelectedIndexChanged="NameIndexChanged" DropDownWidth="120px">  
                                    <Items>  
                                        <telerik:RadComboBoxItem Text="All" />  
                                    </Items>  
                                </telerik:RadComboBox>  
                                <telerik:RadScriptBlock ID="RadScriptBlock5" runat="server">  
 
                                    <script type="text/javascript">  
                                        function NameIndexChanged(sender, args) {  
                                            var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");  
                                            tableView.filter("Name", args.get_item().get_value(), "EqualTo");  
 
                                        }  
                                    </script>  
 
                                </telerik:RadScriptBlock>  
                            </FilterTemplate>  
                        </telerik:GridBoundColumn>  
                    </Columns>  
                </MasterTableView>  
            </telerik:RadGrid>  
            <asp:SqlDataSource ID="AllPackets" runat="server" ConnectionString="<%$ ConnectionStrings:WebConnectionString %>" 
                SelectCommand="Select A.PacketID,MeetingName,A.PublishDate,FiscalYear,ISNULL(D.FirstName +' '+D.LastName,'No Name') as 'Name' From ePacket_Packet A Join ePacket_PacketPerms B ON (A.MeetingID=B.PacketID)
Join ePacket_Meeting C on (A.MeetingID=C.MeetingID) Left Outer Join COAUsers D on (A.PublishedBy=D.UserID)
 Where A.Archive='No' and B.Archive='No'  and B.UserID=@UserID
Order By MeetingName ASC,FiscalYear DESC,PublishDate DESC">  
                <SelectParameters>  
                    <asp:SessionParameter Name="UserID" SessionField="packet" />  
                </SelectParameters>  
            </asp:SqlDataSource>  
            <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:WebConnectionString %>" 
                SelectCommand="Select * From ePacket_Meeting A Join ePacket_PacketPerms B ON (A.MeetingID=B.PacketID) Where B.UserID=@UserID and B.Archive='No' and A.Archive='No' Order By MeetingName ASC">  
                <SelectParameters>  
                    <asp:SessionParameter Name="UserID" SessionField="Packet" />  
                </SelectParameters>  
            </asp:SqlDataSource>  
            <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:WebConnectionString %>" 
                SelectCommand="Select Distinct FiscalYear From ePacket_Packet Where Archive='No' Order By FiscalYear DESC">  
            </asp:SqlDataSource>  
            <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:WebConnectionString %>" 
                SelectCommand="Select  Distinct FirstName+' '+LastName as 'Name' From COAUsers A Join ePacket_Packet B on (A.UserID=B.PublishedBy)
Where B.Archive='No'"></asp:SqlDataSource>  
        </asp:Panel>  
        <br />  
        <asp:Panel ID="panPacketDetails" Width='600px' runat="server" BorderColor="Black" 
            BorderStyle="Solid" BorderWidth="1px" Visible="False">  
            <table width='100%'>  
                <tr>  
                    <td align="center" colspan='2' class="headerOffice07">  
                        <asp:Label ID="lblHeader" Font-Size="Medium" runat="server" Text="Add New Packet" 
                            Font-Bold="True" ForeColor="#00156E"></asp:Label>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left" class="style6">  
                        <asp:Label ID="Label2" runat="server" Text="Select Meeting / Group:" Font-Size='Small'></asp:Label>  
                    </td>  
                    <td align="left">  
                        <telerik:RadComboBox ID="ddlMeetingType" runat="server" Skin="Office2007" Width="300px" 
                            AutoPostBack="True" OnSelectedIndexChanged="ddlMeetingType_SelectedIndexChanged">  
                        </telerik:RadComboBox>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left">  
                        <asp:Label ID="Label4" runat="server" Text="Publish Date:" Font-Size="Small"></asp:Label>  
                    </td>  
                    <td align="left">  
                        <telerik:RadDatePicker ID="dPickPublishDate" runat="server" Skin="Office2007" Width="300px">  
                            <Calendar Skin="Office2007" UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False" 
                                ViewSelectorText="x">  
                            </Calendar>  
                            <DatePopupButton HoverImageUrl="" ImageUrl="" />  
                        </telerik:RadDatePicker>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left">  
                        <asp:Label ID="Label3" Font-Size="Small" runat="server" Text="Available File Types:"></asp:Label>  
                    </td>  
                    <td align="left">  
                        <asp:Panel ID="panAgenda" runat="server" Width="50px" CssClass="fileTypes">  
                            <asp:LinkButton ID="cmdAgenda" runat="server" Font-Size="Small" ForeColor="Red" OnClick="cmdAgenda_Click">Agenda</asp:LinkButton>&nbsp;</asp:Panel>  
                        <asp:Panel ID="panMinutes" CssClass="fileTypes" runat="server" Width="55px">  
                            <asp:LinkButton ID="cmdMinutes" runat="server" Font-Size="Small" ForeColor="Red" 
                                Height="16px">Minutes</asp:LinkButton>&nbsp;</asp:Panel>  
                        <asp:Panel ID="panCOW" runat="server" Width="50px" CssClass="fileTypes">  
                            <asp:LinkButton ID="cmdCOW" runat="server" Font-Size="Small" ForeColor="Red">C.O.W</asp:LinkButton>&nbsp;</asp:Panel>  
                        <asp:Panel ID="panPacket" runat="server" Width="50px" CssClass="fileTypes">  
                            <asp:LinkButton ID="cmdPacket" runat="server" Font-Size="Small" ForeColor="Red">Packet</asp:LinkButton>&nbsp;</asp:Panel>  
                        <asp:Panel ID="panOther" runat="server" Width="75px" CssClass="fileTypes">  
                            <asp:LinkButton ID="cmdOther" runat="server" Font-Size="Small" ForeColor="Red">Other Files</asp:LinkButton>&nbsp;</asp:Panel>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left">  
                        <asp:Label ID="lblLabelFileType" runat="server" Font-Size="Small" Text="File Type:"></asp:Label>  
                    </td>  
                    <td align="left">  
                        <asp:Label ID="lblFileType" runat="server" Font-Size="Small" Text="No File Type Selected"></asp:Label>  
                    </td>  
                </tr>  
                <tr>  
                    <td>  
                        &nbsp;  
                    </td>  
                    <td align="left">  
                        <asp:Table ID="tabFiles" Font-Size="Small" runat="server">  
                        </asp:Table>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="left" class="style6">  
                    </td>  
                    <td align="left">  
                        <telerik:RadUpload ID="RadUpload1" runat="server" MaxFileInputsCount="1" Skin="Office2007" 
                            Enabled="False">  
                        </telerik:RadUpload>  
                    </td>  
                </tr>  
                <tr>  
                    <td align="center" colspan='2'>  
                        <asp:ImageButton ID="cmdSubmit" runat="server" />&nbsp;  
                        <asp:ImageButton ID="cmdCancel" runat="server" /><asp:HiddenField ID="PacketID" runat="server" />  
                    </td>  
                </tr>  
            </table>  
        </asp:Panel>  
    </div>  
</asp:Content>  
 
 
protected void RadGrid2_ItemCommand(object source, GridCommandEventArgs e)  
    {  
        if (e.CommandName == "Details")  
        {  
            LoadPacket(e.CommandArgument.ToString());  
            panPackets.Visible = false;  
        }  
 
        if (e.CommandName == RadGrid.FilterCommandName)  
        {  
            Pair filterPair = (Pair)e.CommandArgument;  
 
            switch (filterPair.Second.ToString())  
            {  
                case "PublishDate":  
                    this.startDate = ((e.Item as GridFilteringItem)[filterPair.Second.ToString()].FindControl("FromOrderDatePicker") as RadDatePicker).SelectedDate;  
                    this.endDate = ((e.Item as GridFilteringItem)[filterPair.Second.ToString()].FindControl("ToOrderDatePicker") as RadDatePicker).SelectedDate;  
                    break;  
                default:  
                    break;  
            }  
        }  
 
    }  
 
Yavor
Telerik team
 answered on 03 Feb 2010
1 answer
161 views
I would like to build a composite component with Google like filtering.  Currently in my demo, I am adding the filtering in the code behind as below:

I am searching for a way to do this so that each developer will not have to add code like this in their code behind.  I was thinking about an event on the radgrid that will do this for me.  Any suggestions would be helpful

 

if (!IsPostBack)

 

{

dt = GetDataTable(

 

null,null);

 

 

 

this.rgContracts.MasterTableView.Columns.Clear();

 

 

 

 

MyCustomFilteringColumnCS DBA = new MyCustomFilteringColumnCS();

 

 

 

this.rgContracts.MasterTableView.Columns.Add(DBA);

 

DBA.DataField =

 

"DBA Name";

 

DBA.HeaderText =

 

"DBA Name";

 

DBA.HeaderStyle.Width =

 

Unit.Pixel(200);

 

DBA.FilterControlWidth =

 

Unit.Pixel(175);

 

DBA.ItemStyle.ForeColor = System.Drawing.

 

Color.Blue;

 

DBA.ItemStyle.Font.Underline =

 

true;

 

 

 

MyCustomFilteringColumnCS ContractType = new MyCustomFilteringColumnCS();

 

 

 

this.rgContracts.MasterTableView.Columns.Add(ContractType);

 

ContractType.DataField =

 

"Contract Type";

 

ContractType.HeaderText =

 

"Contract Type";

 

ContractType.HeaderStyle.Width =

 

Unit.Pixel(75);

 

ContractType.FilterControlWidth =

 

Unit.Pixel(55);

 

 

 

MyCustomFilteringColumnCS Clause = new MyCustomFilteringColumnCS();

 

 

 

this.rgContracts.MasterTableView.Columns.Add(Clause);

 

Clause.DataField =

 

"Clause";

 

Clause.HeaderText =

 

"Clause";

 

Clause.HeaderStyle.Width =

 

Unit.Pixel(90);

 

Clause.FilterControlWidth =

 

Unit.Pixel(70);

 

Clause.ItemStyle.ForeColor = System.Drawing.

 

Color.Blue;

 

Clause.ItemStyle.Font.Underline =

 

true;

 

 

 

MyCustomFilteringColumnCS Notes = new MyCustomFilteringColumnCS();

 

 

 

this.rgContracts.MasterTableView.Columns.Add(Notes);

 

Notes.DataField =

 

"Notes";

 

Notes.HeaderText =

 

"Notes";

 

Notes.HeaderStyle.Width =

 

Unit.Pixel(300);

 

Notes.FilterControlWidth =

 

Unit.Pixel(280);

 

 

 

MyCustomFilteringColumnCS Status = new MyCustomFilteringColumnCS();

 

 

 

this.rgContracts.MasterTableView.Columns.Add(Status);

 

Status.DataField =

 

"Status";

 

Status.HeaderText =

 

"Status";

 

Status.HeaderStyle.Width =

 

Unit.Pixel(60);

 

Status.FilterControlWidth =

 

Unit.Pixel(40);

 

 

 

MyCustomFilteringColumnCS FC = new MyCustomFilteringColumnCS();

 

 

 

this.rgContracts.MasterTableView.Columns.Add(FC);

 

FC.DataField =

 

"Future Condition";

 

FC.HeaderText =

 

"Future Condition";

 

FC.HeaderStyle.Width =

 

Unit.Pixel(86);

 

FC.FilterControlWidth =

 

Unit.Pixel(66);

 

 

 

MyCustomFilteringColumnCS BD = new MyCustomFilteringColumnCS();

 

 

 

this.rgContracts.MasterTableView.Columns.Add(BD);

 

BD.DataFormatString =

 

"{0:d}";

 

BD.HtmlEncode =

 

false;

 

BD.DataField =

 

"Begin Date";

 

BD.HeaderText =

 

"Begin Date";

 

BD.HeaderStyle.Width =

 

Unit.Pixel(75);

 

BD.FilterControlWidth =

 

Unit.Pixel(55);

 

 

 

MyCustomFilteringColumnCS ED = new MyCustomFilteringColumnCS();

 

 

 

this.rgContracts.MasterTableView.Columns.Add(ED);

 

ED.DataFormatString =

 

"{0:d}";

 

ED.HtmlEncode =

 

false;

 

ED.DataField =

 

"End Date";

 

ED.HeaderText =

 

"End Date";

 

ED.HeaderStyle.Width =

 

Unit.Pixel(75);

 

ED.FilterControlWidth =

 

Unit.Pixel(55);

 

}

}

 

Yavor
Telerik team
 answered on 03 Feb 2010
1 answer
157 views
I am looking for some tips on using the Inline edit feature of the Radgrid.

In normal mode, my grid row will have this look:
Header >:  Name    Date Of Hire 
ROW >:      steve     01/01/2001    <edit link>

When I click on the <edit link>, I will enter the inline mode.  I want the value in the Name column to remain a Literal and I want the Date Of Hire column to turn into a RadDatePicker control.

How would I define the controls within the <Columns></Columns> elements of the RadGrid.

Thanks.

Steve
Princy
Top achievements
Rank 2
 answered on 03 Feb 2010
Narrow your results
Selected tags
Tags
+? more
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?