Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
181 views
I cannot Understand why this does not function. I have a grid that is not updating when assigning a Datasource It works Fine Once, Then if I Assign an Updatated Datasource from a business object it fails to bind. if I manually do a refresh from code it binds ok. I have a multitude of Ajaxified grids. All of them seem to react in the Same way. Here is the code:

 
using System;  
using System.Data;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using Telerik.Web.UI;  
using CBBurnet.Web.Data.Telecom;  
 
 
using CBBurnet.Web.Applications.CBBTelecom.ApplicationUtility;  
 
namespace CBBTelecom  
{  
    public partial class CBBMain : System.Web.UI.Page  
    {  
        protected void Page_Load(object sender, EventArgs e)  
        {  
            if (!Page.IsPostBack)  
            {  
                FillTreeview();  
            }  
        }  
 
        public void FillTreeview()  
        {  
            tvOffices.Nodes.Clear();  
            RadTreeNode RootNode = new RadTreeNode();  
            RootNode.Text = "Regional Offices";  
            RootNode.Value = "Level1";  
            tvOffices.Nodes.Add(RootNode);  
 
            DataTable dtTable = Utility.GetRegionalOffices();  
            DataTable OfficeLocations;  
 
            foreach (DataRow dtRow in dtTable.Rows)  
            {  
                RadTreeNode RegionalOfficeNode = new RadTreeNode();  
                RegionalOfficeNode.Text = (string)dtRow["Regional_Office_Name"];  
                string tvValue = "Level2"; // Convert.ToString(dtRow["Regional_Office_ID"]);  
                RegionalOfficeNode.Value = tvValue;  
                  
                RootNode.Nodes.Add(RegionalOfficeNode);  
                OfficeLocations = Utility.GetOfficesForRegion((int)dtRow["Regional_Office_ID"]);  
                foreach (DataRow dtOffice in OfficeLocations.Rows)  
                {  
                    RadTreeNode OfficeNode = new RadTreeNode();  
                    OfficeNode.Text = (string)dtOffice["Office"];  
                    string officeValue = Convert.ToString(dtOffice["OfficeID"]);  
                    OfficeNode.Value = officeValue;  
                      
                    RegionalOfficeNode.Nodes.Add(OfficeNode);  
                }  
            }  
        }  
 
          
        public void FillOfficeLocation(int value)  
        {  
            DataTable dtOffice = OfficeLocations.GetSingleOfficeLocations(value);  
            lvOffices.DataSource = dtOffice;  
              
        }  
 
        public void FillGridValues(int value)  
        {  
            DataTable dtTable = Utility.GetDemarcInfo(value);  
            grdDemarc.DataSource = dtTable;  
            grdDemarc.Rebind();  
 
            DataTable dtDialTone = DialTone.GetDialToneInfo(value);  
            grdDialTone.DataSource = dtDialTone;  
            grdDialTone.Rebind();  
 
            DataTable dtAnalog = Analog.GetAnalogInfo(value);  
            grdAnalog.DataSource = dtAnalog;  
            grdAnalog.Rebind();   
 
 
            DataTable dtPhoneSystems = PhoneSystems.GetPhoneSystemsInfo(value);  
            grdPhoneSystems.DataSource = dtPhoneSystems;  
              
            grdPhoneSystems.Rebind();  
        }  
 
        protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)  
        {  
              
            if (e.Argument == "Rebind")  
            {  
                int value = Convert.ToInt32(Session["OfficeID"]);  
                  
                FillGridValues(value);  
                
            }      
              
        }  
 
        protected void tvOffices_NodeClick(object sender, RadTreeNodeEventArgs e)  
        {  
            if ((tvOffices.SelectedValue != "Level1") || (tvOffices.SelectedValue != "Level2"))  
            {  
                int value = Convert.ToInt32(e.Node.Value);  
                Session["OfficeID"] = value;  
 
                FillOfficeLocation(value);  
                FillGridValues(value);  
            }  
        }  
 
        protected void RadTabStrip1_TabClick(object sender, RadTabStripEventArgs e)  
        {  
            e.Tab.PageView.Selected = true;  
            int value = Convert.ToInt32(Session["OfficeID"]);  
            FillGridValues(value);  
              
        }  
 
        protected void Grid_Refresh(object sender, EventArgs e)  
        {  
            int value = Convert.ToInt32(Session["OfficeID"]);  
            FillGridValues(value);  
        }  
 
        protected void grdDemarc_DeleteCommand(object sender, GridCommandEventArgs e)  
        {  
 
            GridDataItem item = (GridDataItem)e.Item;  
            string dID = item.OwnerTableView.DataKeyValues[item.ItemIndex]["DemarcID"].ToString();  
            int dID2 = Convert.ToInt32(dID);  
            if (dID2 > 0)  
            {  
                bool retval = Demarc.DeleteRecord(dID2);  
            }  
        }  
         
 
        protected void grdDemarc_DetailTableDataBind(object source, GridDetailTableDataBindEventArgs e)  
        {  
            GridDataItem dataItem = e.DetailTableView.ParentItem;  
            switch (e.DetailTableView.Name)  
            {  
                case "Notes":  
                    {  
                        string DemarcID = dataItem.GetDataKeyValue("DemarcID").ToString();  
                        int tmp = Convert.ToInt32(DemarcID);  
                        e.DetailTableView.DataSource = Demarc.GetSingleDemarc(tmp);  
                              
                        break;  
                    }  
            }  
        }  
 
        protected void lvOffices_NeedDataSource(object sender, RadListViewNeedDataSourceEventArgs e)  
        {  
            int value = Convert.ToInt32(Session["OfficeID"]);  
            FillOfficeLocation(value);  
        }  
 
        protected void grdDemarc_NeedDataSource(object source, GridNeedDataSourceEventArgs e)  
        {  
            int value = Convert.ToInt32(Session["OfficeID"]);  
            if (value > 0)  
            {  
                DataTable dtTable = Utility.GetDemarcInfo(value);  
                grdDemarc.DataSource = dtTable;  
            }  
           
        }  
 
        protected void grdPhoneSystems_NeedDataSource(object source, GridNeedDataSourceEventArgs e)  
        {  
            int value = Convert.ToInt32(Session["OfficeID"]);  
            if (value > 0)  
            {  
                DataTable dtTable = PhoneSystems.GetPhoneSystemsInfo(value);  
                grdPhoneSystems.DataSource = dtTable;  
            }  
            
        }  
 
         
        
 
         
    }  
}  
 

As You can see I am just assigning a Datatable to Each Datasource I get no errors but no updates either unless I manually do Grid_Refresh from the command Template I have tried the NeedDatasource but Only get Called Once and Never gets called againg even though the Datasource is Changed.

 

<%@ Page Title="" Language="C#" MasterPageFile="~/CBBTelecomMaster.Master" AutoEventWireup="true" CodeBehind="CBBMain.aspx.cs" Inherits="CBBTelecom.CBBMain" EnableEventValidation="True" %> 
 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">  
    <telerik:RadAjaxManager runat="server" ID="RadAjaxManager1" OnAjaxRequest="RadAjaxManager1_AjaxRequest">  
        <AjaxSettings> 
            <telerik:AjaxSetting AjaxControlID="tvOffices">  
                <UpdatedControls> 
                    <telerik:AjaxUpdatedControl ControlID="RadToolBar1" /> 
                    <telerik:AjaxUpdatedControl ControlID="tvOffices" /> 
                    <telerik:AjaxUpdatedControl ControlID="RadAjaxManager1" /> 
                    <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="RadTabStrip1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="lvOffices" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="grdDemarc" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                </UpdatedControls> 
            </telerik:AjaxSetting> 
            <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">  
                <UpdatedControls> 
                    <telerik:AjaxUpdatedControl ControlID="RadToolBar1" /> 
                    <telerik:AjaxUpdatedControl ControlID="grdDemarc" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="grdDialTone" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="grdAnalog" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="grdPhoneSystem" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                </UpdatedControls> 
            </telerik:AjaxSetting> 
            <telerik:AjaxSetting AjaxControlID="RadTabStrip1">  
                <UpdatedControls> 
                    <telerik:AjaxUpdatedControl ControlID="RadMultiPage1" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="lvOffices" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="grdDemarc" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="grdDialTone" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="grdAnalog" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                    <telerik:AjaxUpdatedControl ControlID="grdPhoneSystem" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                </UpdatedControls> 
            </telerik:AjaxSetting> 
            <telerik:AjaxSetting AjaxControlID="RadMultiPage1">  
                <UpdatedControls> 
                    <telerik:AjaxUpdatedControl ControlID="grdDemarc" LoadingPanelID="RadAjaxLoadingPanel1" /> 
                </UpdatedControls> 
            </telerik:AjaxSetting> 
        </AjaxSettings> 
    </telerik:RadAjaxManager> 
    <telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" MinDisplayTime="0" /> 
    <telerik:RadTreeView ID="tvOffices" runat="server" OnNodeClick="tvOffices_NodeClick">  
        <DataBindings> 
            <telerik:RadTreeNodeBinding /> 
        </DataBindings> 
    </telerik:RadTreeView> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">  
    <telerik:RadScriptBlock runat="server" ID="RadScriptBlock1">  
 
        <script type="text/javascript">  
 
            function openDemarcWindow(DemarcID) {  
                var oWnd = radopen("EditDetails.aspx?DemarcID=" + DemarcID, "Edit");  
                oWnd.center();  
            }  
 
            function openDialToneWindow(DialToneID) {  
                var oWnd = radopen("DialToneEdit.aspx?DialToneID=" + DialToneID, "Edit");  
                oWnd.center();  
            }  
 
            function openAnalogWindow(AnalogID) {  
                var oWnd = radopen("AnalogEdit.aspx?AnalogID=" + AnalogID, "Edit");  
                oWnd.center();  
            }  
 
            function openOfficeWindow(ID) {  
                var oWnd = radopen("OfficeEdit.aspx?ID=" + ID, "OfficeEdit");  
                oWnd.center();  
            }  
 
 
            function openPhoneSystemsWindow(PhoneSystemID) {  
                var oWnd = radopen("PhoneSystemEdit.aspx?PhoneSystemID=" + PhoneSystemID, "Edit");  
                oWnd.center();  
            }  
 
            function ShowDemarcEdit(sender, args) {  
                var demarcID = args.getDataKeyValue("DemarcID");  
                var wnd = window.radopen("EditDetails.aspx?DemarcID=" + demarcID, "EditWindow");  
            }  
 
            function grdDemarcRowDblClick(sender, eventArgs) {  
                var demarcID = eventArgs.getDataKeyValue("DemarcID");  
                var wnd = window.radopen("EditDetails.aspx?DemarcID=" + demarcID, "EditWindow");  
            }  
 
            function grdDialToneRowDblClick(sender, eventArgs) {  
                var dtID = eventArgs.getDataKeyValue("DialToneID");  
                openDialToneWindow(dtID);  
            }  
 
            function grdAnalogRowDblClick(sender, eventArgs) {  
                var AID = eventArgs.getDataKeyValue("AnalogID");  
                openAnalogWindow(AID);  
            }  
 
            function grdPhoneSystemsRowDblClick(sender, eventArgs) {  
                var PID = eventArgs.getDataKeyValue("PhoneSystemID");  
                openPhoneSystemsWindow(PID);  
            }  
 
            function clientButtonClicked(sender, args) {  
                var sitem = args.get_item().get_value();  
                openOfficeWindow(sitem);  
            }  
 
            function refreshGrid(arg) {  
                if (arg) {  
                    $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");  
                }  
            }  
        </script> 
 
    </telerik:RadScriptBlock> 
    <telerik:RadWindowManager runat="Server" ID="RadWindowManager1" EnableViewState="false">  
        <Windows> 
            <telerik:RadWindow runat="server" ID="Edit" Width="870px" Height="550px" ReloadOnShow="true" ShowContentDuringLoad="false" Modal="True" Behaviors="Close,Move" VisibleStatusbar="true" Title="Edit Record">  
            </telerik:RadWindow> 
            <telerik:RadWindow runat="server" ID="OfficeEdit" Width="870px" Height="650px" ReloadOnShow="true" ShowContentDuringLoad="false" Modal="True" Behaviors="Close,Move" VisibleStatusbar="true" Title="Edit Record">  
            </telerik:RadWindow> 
            <telerik:RadWindow ID="UserListDialog" runat="server" Title="Editing record" Height="400px" Width="300px" Left="150px" ReloadOnShow="true" ShowContentDuringLoad="false" Modal="true" /> 
            <telerik:RadWindow runat="server" ID="EditWindow" Width="870px" Height="550px" ReloadOnShow="true" ShowContentDuringLoad="false" Modal="True" Behaviors="Close,Move" VisibleStatusbar="true" Title="Edit Record">  
            </telerik:RadWindow> 
        </Windows> 
    </telerik:RadWindowManager> 
    <telerik:RadSplitter runat="server" ID="RadSplitter1" Width="100%" BorderSize="0" BorderStyle="None" PanesBorderSize="0" Height="100%" Orientation="Horizontal">  
        <!-- Upper Level --> 
        <telerik:RadPane runat="server" ID="RadPane1" Height="32px" EnableViewState="false" Scrolling="None">  
            <telerik:RadToolBar runat="server" ID="RadToolBar1" OnClientButtonClicked="clientButtonClicked">  
                <Items> 
                    <telerik:RadToolBarButton ImageUrl="~/Images/print.gif" /> 
                    <telerik:RadToolBarButton IsSeparator="true" /> 
                    <telerik:RadToolBarDropDown runat="server" Text="Office">  
                        <Buttons> 
                            <telerik:RadToolBarButton runat="server" Text="Create New Office" Value="1">  
                            </telerik:RadToolBarButton> 
                            <telerik:RadToolBarButton runat="server" Text="Edit Diplayed Office" Value="2">  
                            </telerik:RadToolBarButton> 
                        </Buttons> 
                    </telerik:RadToolBarDropDown> 
                </Items> 
            </telerik:RadToolBar> 
        </telerik:RadPane> 
        <telerik:RadPane runat="server" ID="RadPane2" Width="100%" Style="margin: 0,auto,0,auto;">  
            <telerik:RadListView ID="lvOffices" runat="server" ItemPlaceholderID="OfficeHolder" DataKeyNames="OfficeID" OnNeedDataSource="lvOffices_NeedDataSource">  
                <LayoutTemplate> 
                    <asp:Panel ID="OfficeHolder" runat="server" Visible="true" /> 
                </LayoutTemplate> 
                <ItemTemplate> 
                    <asp:Panel ID="pnlContact" runat="server" CssClass="demarcpanel">  
                        <table style="width: 100%;">  
                            <tr> 
                                <td style="vertical-align: top; text-align: left;">  
                                    <ul class="EditDetailsWrapper">  
                                        <li><b>Office Information</b> </li> 
                                        <li> 
                                            <telerik:RadTextBox runat="server" ID="txtAdmin" Label="Office Administrator" LabelCssClass="DetailLabel" Width="300px" Text='<%# Eval("OfficeAdministrator") %>' /> 
                                        </li> 
                                        <li> 
                                            <telerik:RadMaskedTextBox runat="server" ID="txtAdminPhone" Label="Administrator Phone" LabelCssClass="DetailLabel" Width="300px" Mask="(###) ###-####" Text='<%# Eval("OAPhone") %>'>  
                                            </telerik:RadMaskedTextBox> 
                                        </li> 
                                        <li> 
                                            <telerik:RadMaskedTextBox runat="server" ID="RadMaskedTextBox1" Label="Alternate Admin Phone" LabelCssClass="DetailLabel" Width="300px" Mask="(###) ###-####" Text='<%# Eval("AlternateOAPhone") %>'>  
                                            </telerik:RadMaskedTextBox> 
                                        </li> 
                                        <li> 
                                            <telerik:RadTextBox runat="server" ID="RadTextBox1" Label="Office PC Number" LabelCssClass="DetailLabel" Width="300px" Text='<%# Eval("OfficePCNumber") %>' /> 
                                        </li> 
                                        <li> 
                                            <asp:Label CssClass="DetailLabel" Font-Size="X-Small" Font-Names="Verdana" runat="server" Text="Administrator Email " /><asp:HyperLink NavigateUrl='<%# Eval("OAEmail", "mailto:{0}") %>' Text='<%# Eval("OAEmail") %>' 
                                                runat="server" ID="hlEmail" CssClass="DetailLabel" Font-Size="X-Small"></asp:HyperLink> 
                                        </li> 
                                    </ul> 
                                </td> 
                                <td style="vertical-align: top;">  
                                    <ul class="EditDetailsWrapper">  
                                        <li><b>Phone Information</b> </li> 
                                        <li> 
                                            <telerik:RadMaskedTextBox runat="server" ID="txtBusinessPhone" Label="Office Phone" LabelCssClass="DetailLabel" Width="300px" Mask="(###) ###-####" Text='<%# Eval("OfficePhone") %>'>  
                                            </telerik:RadMaskedTextBox> 
                                        </li> 
                                        <li> 
                                            <telerik:RadMaskedTextBox runat="server" ID="txtFax" Label="Office Fax" LabelCssClass="DetailLabel" Width="300px" Mask="(###) ###-####" Text='<%# Eval("OfficeFax") %>'>  
                                            </telerik:RadMaskedTextBox> 
                                        </li> 
                                        <li> 
                                            <telerik:RadMaskedTextBox runat="server" ID="RadMaskedTextBox2" Label="Main Fax" LabelCssClass="DetailLabel" Width="300px" Mask="(###) ###-####" Text='<%# Eval("MainFaxNumber") %>'>  
                                            </telerik:RadMaskedTextBox> 
                                        </li> 
                                    </ul> 
                                </td> 
                                <tr> 
                                    <td style="vertical-align: top;">  
                                        <ul class="EditDetailsWrapper">  
                                            <li><b>Address Information</b> </li> 
                                            <li> 
                                                <telerik:RadTextBox runat="server" ID="txtStreet" Label="Street" LabelCssClass="DetailLabel" Width="300px" Text='<%# Eval("Street") %>'>  
                                                </telerik:RadTextBox> 
                                            </li> 
                                            <li> 
                                                <telerik:RadTextBox runat="server" ID="txtCity" Label="City" LabelCssClass="DetailLabel" Width="300px" Text='<%# Eval("City") %>'>  
                                                </telerik:RadTextBox> 
                                            </li> 
                                            <li> 
                                                <telerik:RadTextBox runat="server" ID="txtState" Label="State" LabelCssClass="DetailLabel" Width="300px" Text='<%# Eval("St") %>'>  
                                                </telerik:RadTextBox> 
                                            </li> 
                                            <li> 
                                                <telerik:RadTextBox runat="server" ID="txtZipCode" Label="Zip Code" LabelCssClass="DetailLabel" Width="300px" Text='<%# Eval("Zip") %>'>  
                                                </telerik:RadTextBox> 
                                            </li> 
                                        </ul> 
                                    </td> 
                                  
                                <td> 
                                    <ul class="EditDetailsWrapper">  
                                        <li><b>Management Information</b></li>  
                                        <li> 
                                            <telerik:RadTextBox runat="server" ID="txtRegionalVP" Label="Regional VP" LabelCssClass="DetailLabel" Width="300px" Text='<%# Eval("Regional_VP") %>'>  
                                            </telerik:RadTextBox> 
                                        </li> 
                                        <li> 
                                            <telerik:RadTextBox runat="server" ID="txtManager" Label="Manager" LabelCssClass="DetailLabel" Width="300px" Text='<%# Eval("Manager") %>'>  
                                            </telerik:RadTextBox> 
                                        </li> 
                                        <li> 
                                            <telerik:RadMaskedTextBox runat="server" ID="txtManagerPhone" Label="Phone" LabelCssClass="DetailLabel" Width="300px" Mask="(###) ###-####" Text='<%# Eval("MgrPhone") %>'>  
                                            </telerik:RadMaskedTextBox> 
                                        </li> 
                                        <li> 
                                            <li> 
                                                <asp:Label ID="Label1" CssClass="DetailLabel" Font-Size="X-Small" Font-Names="Verdana" runat="server" Text="Manager Email " /><asp:HyperLink NavigateUrl='<%# Eval("MgrEmail", "mailto:{0}") %>' Text='<%# Eval("MgrEmail") %>' 
                                                    runat="server" ID="HyperLink1" CssClass="DetailLabel" Font-Size="X-Small"></asp:HyperLink> 
                                            </li> 
                                        </li> 
                                    </ul> 
                                </td> 
                                <td> 
                                    <ul class="EditDetailsWrapper">  
                                        <li> 
                                            <telerik:RadTextBox runat="server" ID="RadTextBox2" Label="Asst. Manager" LabelCssClass="DetailLabel" Width="300px" Text='<%# Eval("AlternateManager") %>'>  
                                            </telerik:RadTextBox> 
                                        </li> 
                                        <li> 
                                            <telerik:RadMaskedTextBox runat="server" ID="RadMaskedTextBox3" Label="Phone" LabelCssClass="DetailLabel" Width="300px" Mask="(###) ###-####" Text='<%# Eval("AltMgrPhone") %>'>  
                                            </telerik:RadMaskedTextBox> 
                                        </li> 
                                        <li> 
                                            <asp:Label ID="Label2" CssClass="DetailLabel" Font-Size="X-Small" Font-Names="Verdana" runat="server" Text=" Alt. Manager Email: " /><asp:HyperLink NavigateUrl='<%# Eval("AltMgrEmail", "mailto:{0}") %>' 
                                                Text='<%# Eval("AltMgrEmail") %>' runat="server" ID="HyperLink2" CssClass="DetailLabel" Font-Size="X-Small"></asp:HyperLink> 
                                        </li> 
                                    </ul> 
                                </td> 
                            </tr> 
                            <%-- <tr> 
                                <td colspan="3">  
                                    <ul class="EditDetailsWrapper">  
                                        <li><b>Notes</b></li>  
                                        <telerik:RadTextBox runat="server" ID="RadTextBox1" Rows="5" TextMode="MultiLine" 
                                            Width="100%">  
                                        </telerik:RadTextBox></li>  
                                    </ul> 
                                </td> 
                            </tr>--%> 
                        </table> 
                    </asp:Panel> 
                </ItemTemplate> 
            </telerik:RadListView> 
        </telerik:RadPane> 
        <telerik:RadSplitBar runat="server" ID="RadSplitBar1" /> 
        <!-- Lower Level --> 
        <telerik:RadPane runat="server" ID="RadPane3" Height="350px">  
            <telerik:RadTabStrip ID="RadTabStrip1" runat="server" MultiPageID="RadMultiPage1" SelectedIndex="0" Align="Justify" Width="100%" AutoPostBack="True" OnTabClick="RadTabStrip1_TabClick">  
                <Tabs> 
                    <telerik:RadTab Text="Demarc" PageViewID="RadPageView1" Selected="True" /> 
                    <telerik:RadTab Text="Dial Tone" PageViewID="RadPageView2" /> 
                    <telerik:RadTab Text="Analog" PageViewID="RadPageView3" /> 
                    <telerik:RadTab Text="Phone System" PageViewID="RadPageView4" /> 
                </Tabs> 
            </telerik:RadTabStrip> 
            <telerik:RadMultiPage ID="RadMultiPage1" runat="server" Width="100%" Height="100%" SelectedIndex="0">  
                <telerik:RadPageView ID="RadPageView1" runat="server" Width="100%" Height="100%" Selected="true">  
                    <telerik:RadGrid ID="grdDemarc" Width="100%" runat="server" GridLines="None" AutoGenerateColumns="False" OnDetailTableDataBind="grdDemarc_DetailTableDataBind" OnDeleteCommand="grdDemarc_DeleteCommand" 
                        OnNeedDataSource="grdDemarc_NeedDataSource">  
                        <ClientSettings Selecting-AllowRowSelect="true" EnableRowHoverStyle="true" AllowDragToGroup="true">  
                            <Selecting AllowRowSelect="True" /> 
                            <ClientEvents OnRowDblClick="grdDemarcRowDblClick" /> 
                        </ClientSettings> 
                        <MasterTableView Width="98%" CommandItemDisplay="Top" TableLayout="Auto" DataKeyNames="DemarcID, OfficeID" ClientDataKeyNames="DemarcID, OfficeID, ContactID" AutoGenerateColumns="False">  
                            <CommandItemSettings AddNewRecordText="Add New Record" /> 
                            <ExpandCollapseColumn Visible="True">  
                            </ExpandCollapseColumn> 
                            <Columns> 
                                <telerik:GridTemplateColumn> 
                                    <ItemTemplate> 
                                        <a href="#" onclick='openDemarcWindow(&#039;<%#DataBinder.Eval(Container.DataItem,"DemarcID")%>&#039;); return false;'>Edit</a> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridBoundColumn DataField="DemarcName" HeaderText="Demarc Name" UniqueName="DemarcName" /> 
                                <telerik:GridBoundColumn DataField="Description" HeaderText="Description" UniqueName="Description" /> 
                                <telerik:GridBoundColumn DataField="AccessHours" HeaderText="AccessHours" UniqueName="AccessHours" /> 
                                <telerik:GridDropDownColumn ColumnEditorID="GridDropDownColumnEditor1" DataField="ContactID" DataSourceID="ContactLookUp" HeaderText="Contact Name" ListTextField="ContactName" ListValueField="ContactID" 
                                    SortExpression="ContactID" UniqueName="ContactID">  
                                </telerik:GridDropDownColumn> 
                                <telerik:GridHTMLEditorColumn DataField="Notes" HeaderText="Notes" ItemStyle-Height="22px" MaxLength="255" UniqueName="Notes" Visible="false">  
                                    <ItemStyle Height="22px" /> 
                                </telerik:GridHTMLEditorColumn> 
                                <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" ConfirmDialogType="RadWindow" ConfirmText="Delete this Item?" ConfirmTitle="Delete" Text="Delete" UniqueName="DeleteColumn">  
                                    <ItemStyle CssClass="MyImageButton" HorizontalAlign="Center" /> 
                                </telerik:GridButtonColumn> 
                            </Columns> 
                            <CommandItemTemplate> 
                                <br /> 
                                <asp:LinkButton ID="lnkDemarc" runat="server" Height="32px" OnClientClick="openDemarcWindow('0');"><img style="border:0px;vertical-align:middle;" alt="" src="Images/AddRecord.gif" /> Add New Record </asp:LinkButton> 
                                &nbsp;&nbsp;  
                                <asp:LinkButton ID="lnkRefreshDemarc" runat="server" Height="32px" Style="text-align: right;" OnClick="Grid_Refresh"><img style="border:0px;vertical-align:middle;" alt="" src="Images/Refresh.gif" /> Refresh </asp:LinkButton> 
                            </CommandItemTemplate> 
                            <DetailTables> 
                                <telerik:GridTableView DataKeyNames="DemarcID" Name="Notes" Width="98%">  
                                    <Columns> 
                                        <telerik:GridHTMLEditorColumn DataField="Notes" UniqueName="Notes" HeaderText="Notes">  
                                        </telerik:GridHTMLEditorColumn> 
                                    </Columns> 
                                </telerik:GridTableView> 
                            </DetailTables> 
                        </MasterTableView> 
                    </telerik:RadGrid> 
                    <asp:SqlDataSource ID="ContactLookUp" runat="server" ConnectionString="<%$ ConnectionStrings:CBBTelecomConnection %>" ProviderName="System.Data.SqlClient" SelectCommand="SELECT [ContactID], [FirstName] + ' ' + [LastName] As ContactName FROM [Contacts]">  
                    </asp:SqlDataSource> 
                    <asp:SqlDataSource ID="RemoteAccess" runat="server" ConnectionString="<%$ ConnectionStrings:CBBTelecomConnection %>" ProviderName="System.Data.SqlClient" SelectCommand="SELECT RemoteAccessID, AccessMethod FROM PhoneAccessMethods">  
                    </asp:SqlDataSource> 
                    <asp:SqlDataSource ID="ConPrograms" runat="server" ConnectionString="<%$ ConnectionStrings:CBBTelecomConnection %>" ProviderName="System.Data.SqlClient" SelectCommand="SELECT ConnectionProgramID, ProgramName FROM ConnectionPrograms">  
                    </asp:SqlDataSource> 
                </telerik:RadPageView> 
                <telerik:RadPageView ID="RadPageView2" runat="server">  
                    <telerik:RadGrid ID="grdDialTone" Width="100%" runat="server" GridLines="None" AutoGenerateColumns="False">  
                        <ClientSettings Selecting-AllowRowSelect="true" EnableRowHoverStyle="true" AllowDragToGroup="true">  
                            <ClientEvents OnRowDblClick="grdDialToneRowDblClick" /> 
                        </ClientSettings> 
                        <MasterTableView Width="98%" CommandItemDisplay="Top" TableLayout="Auto" DataKeyNames="DialToneID" ClientDataKeyNames="DialToneID" AutoGenerateColumns="False">  
                            <Columns> 
                                <telerik:GridTemplateColumn> 
                                    <ItemTemplate> 
                                        <a href="#" onclick="openDialToneWindow('<%#DataBinder.Eval(Container.DataItem,"DialToneID")%>'); return false;">Edit</a></ItemTemplate>  
                                </telerik:GridTemplateColumn> 
                                <telerik:GridBoundColumn DataField="AccountNumber" UniqueName="AccountNumber" HeaderText="Account Number" /> 
                                <telerik:GridBoundColumn DataField="AccountName" UniqueName="AccountName" HeaderText="Account Name" /> 
                                <telerik:GridBoundColumn DataField="DIDRangeActNumber" UniqueName="DIDRangeActNumber" HeaderText="DID Range Account Number" /> 
                                <telerik:GridBoundColumn DataField="DialToneUse" UniqueName="DialToneUse" HeaderText="Use" /> 
                                <telerik:GridBoundColumn DataField="DialToneLDProvider" UniqueName="DialToneLDProvider" HeaderText="LD Provider" /> 
                                <telerik:GridBoundColumn DataField="DialTonePickCode" UniqueName="DialTonePickCode" HeaderText="Pick Code" /> 
                                <telerik:GridNumericColumn DataField="DialToneCost" UniqueName="DialToneCost" HeaderText="Cost" /> 
                                <telerik:GridCheckBoxColumn DataField="Cancelled" UniqueName="Cancelled" HeaderText="Canceled?" /> 
                                <telerik:GridDateTimeColumn DataField="CancelledDate" UniqueName="CancelledDate" HeaderText="Canceled Date" /> 
                                <telerik:GridBoundColumn DataField="CancellationNumber" UniqueName="CancellationNumber" HeaderText="Cancellation Number" /> 
                                <telerik:GridDropDownColumn DataField="ContactID" DataSourceID="ContactLookUp" HeaderText="Contact Name" ListTextField="ContactName" ListValueField="ContactID" UniqueName="ContactID" ColumnEditorID="GridDropDownColumnEditor1" 
                                    SortExpression="ContactID">  
                                </telerik:GridDropDownColumn> 
                                <telerik:GridHTMLEditorColumn DataField="Notes" UniqueName="Notes" HeaderText="Notes" MaxLength="255" ItemStyle-Height="22px" Visible="false">  
                                </telerik:GridHTMLEditorColumn> 
                                <telerik:GridButtonColumn ConfirmText="Delete this Item?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete" UniqueName="DeleteColumn">  
                                    <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> 
                                </telerik:GridButtonColumn> 
                            </Columns> 
                            <CommandItemTemplate> 
                                <br /> 
                                <asp:LinkButton ID="lnkDialTone" runat="server" Height="32px" OnClientClick="openDialToneWindow('0');"><img style="border:0px;vertical-align:middle;" alt="" src="Images/AddRecord.gif" /> Add New Record </asp:LinkButton> 
                                &nbsp;&nbsp;  
                                <asp:LinkButton ID="lnkRefreshDialTone" runat="server" Height="32px" Style="text-align: right;" OnClick="Grid_Refresh"><img style="border:0px;vertical-align:middle;" alt="" src="Images/Refresh.gif" /> Refresh </asp:LinkButton> 
                            </CommandItemTemplate> 
                            <%--<DetailTables> 
                                <telerik:GridTableView DataKeyNames="DemarcID" Name="Notes" Width="98%">  
                                    <Columns> 
                                        <telerik:GridHTMLEditorColumn DataField="Notes" UniqueName="Notes" HeaderText="Notes">  
                                        </telerik:GridHTMLEditorColumn> 
                                    </Columns> 
                                </telerik:GridTableView> 
                            </DetailTables>--%> 
                        </MasterTableView> 
                    </telerik:RadGrid> 
                </telerik:RadPageView> 
                <telerik:RadPageView ID="RadPageView3" runat="server">  
                    <telerik:RadGrid ID="grdAnalog" Width="100%" runat="server" GridLines="None" AutoGenerateColumns="False">  
                        <ClientSettings Selecting-AllowRowSelect="true" EnableRowHoverStyle="true" AllowDragToGroup="true">  
                            <ClientEvents OnRowDblClick="grdAnalogRowDblClick" /> 
                        </ClientSettings> 
                        <MasterTableView Width="98%" CommandItemDisplay="Top" TableLayout="Auto" DataKeyNames="AnalogID" ClientDataKeyNames="AnalogID" AutoGenerateColumns="False">  
                            <Columns> 
                                <telerik:GridTemplateColumn> 
                                    <ItemTemplate> 
                                        <a href="#" onclick="openAnalogWindow('<%#DataBinder.Eval(Container.DataItem,"AnalogID")%>'); return false;">Edit</a> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridBoundColumn DataField="AccountNumber" UniqueName="AccountNumber" HeaderText="Account Number" /> 
                                <telerik:GridBoundColumn DataField="PhoneNumber" UniqueName="PhoneNumber" HeaderText="PhoneNumber" /> 
                                <telerik:GridBoundColumn DataField="Type" UniqueName="Type" HeaderText="Type" /> 
                                <telerik:GridBoundColumn DataField="AnalogUse" UniqueName="AnalogUse" HeaderText="Use" /> 
                                <telerik:GridBoundColumn DataField="AnalogLDProvider" UniqueName="AnalogLDProvider" HeaderText="LD Provider" /> 
                                <telerik:GridBoundColumn DataField="AnalogPickCode" UniqueName="AnalogPickCode" HeaderText="Pick Code" /> 
                                <telerik:GridNumericColumn DataField="AnalogCost" UniqueName="AnalogCost" HeaderText="Cost" /> 
                                <telerik:GridCheckBoxColumn DataField="Cancelled" UniqueName="Cancelled" HeaderText="Canceled?" /> 
                                <telerik:GridDateTimeColumn DataField="CanceledDate" UniqueName="CanceledDate" HeaderText="Canceled Date" /> 
                                <telerik:GridBoundColumn DataField="CancelationNumber" UniqueName="CancelationNumber" HeaderText="Cancellation Number" /> 
                                <telerik:GridDropDownColumn DataField="ContactID" DataSourceID="ContactLookUp" HeaderText="Contact Name" ListTextField="ContactName" ListValueField="ContactID" UniqueName="ContactID" ColumnEditorID="GridDropDownColumnEditor1" 
                                    SortExpression="ContactID">  
                                </telerik:GridDropDownColumn> 
                                <telerik:GridHTMLEditorColumn DataField="Notes" UniqueName="Notes" HeaderText="Notes" MaxLength="255" ItemStyle-Height="22px" Visible="false">  
                                </telerik:GridHTMLEditorColumn> 
                                <telerik:GridButtonColumn ConfirmText="Delete this Item?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete" UniqueName="DeleteColumn">  
                                    <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> 
                                </telerik:GridButtonColumn> 
                            </Columns> 
                            <CommandItemTemplate> 
                                <br /> 
                                <asp:LinkButton ID="lnkAnalog" runat="server" Height="32px" OnClientClick="openAnalogWindow('0');"><img style="border:0px;vertical-align:middle;" alt="" src="Images/AddRecord.gif" /> Add New Record </asp:LinkButton> 
                                &nbsp;&nbsp;  
                                <asp:LinkButton ID="lnkRefreshAnalog" runat="server" Height="32px" Style="text-align: right;" OnClick="Grid_Refresh"><img style="border:0px;vertical-align:middle;" alt="" src="Images/Refresh.gif" /> Refresh </asp:LinkButton> 
                            </CommandItemTemplate> 
                            <%--<DetailTables> 
                                <telerik:GridTableView DataKeyNames="DemarcID" Name="Notes" Width="98%">  
                                    <Columns> 
                                        <telerik:GridHTMLEditorColumn DataField="Notes" UniqueName="Notes" HeaderText="Notes">  
                                        </telerik:GridHTMLEditorColumn> 
                                    </Columns> 
                                </telerik:GridTableView> 
                            </DetailTables>--%> 
                        </MasterTableView> 
                    </telerik:RadGrid> 
                </telerik:RadPageView> 
                <telerik:RadPageView ID="RadPageView4" runat="server">  
                    <telerik:RadGrid ID="grdPhoneSystems" runat="server" AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false" GridLines="None" OnNeedDataSource="grdPhoneSystems_NeedDataSource">  
                        <ClientSettings Selecting-AllowRowSelect="true" EnableRowHoverStyle="true" AllowDragToGroup="true" > 
                            <ClientEvents OnRowDblClick="grdPhoneSystemsRowDblClick" /> 
                        </ClientSettings> 
                        <MasterTableView CommandItemDisplay="Top" TableLayout="Auto" AutoGenerateColumns="false" DataKeyNames="PhoneSystemID" ClientDataKeyNames="PhoneSystemID">  
                            <Columns> 
                                <telerik:GridTemplateColumn> 
                                    <ItemTemplate> 
                                        <a href="#" onclick="openPhoneSystemsWindow('<%#DataBinder.Eval(Container.DataItem,"PhoneSystemID")%>'); return false;">Edit</a> 
                                    </ItemTemplate> 
                                </telerik:GridTemplateColumn> 
                                <telerik:GridBoundColumn UniqueName="Make" DataField="Make" HeaderText="Make" /> 
                                <telerik:GridBoundColumn UniqueName="Model" DataField="Model" HeaderText="Model" /> 
                                <telerik:GridBoundColumn UniqueName="Manufacturer" DataField="Manufacturer" HeaderText="Manufacturer" /> 
                                <telerik:GridBoundColumn UniqueName="RTULicense" DataField="RTULicense" HeaderText="Right To Use #" /> 
                                <telerik:GridCheckBoxColumn UniqueName="RemoteAccess" DataField="RemoteAccess" HeaderText="Remote Access?" /> 
                                <telerik:GridDropDownColumn DataField="RemoteAccessTypeID" DataSourceID="RemoteAccess" HeaderText="Remote Access Type" ListTextField="AccessMethod" ListValueField="RemoteAccessID" UniqueName="RemoteAccessID" 
                                    ColumnEditorID="GridDropDownColumnEditor1" SortExpression="RemoteAccessTypeID" EmptyListItemValue="">  
                                </telerik:GridDropDownColumn> 
                                <telerik:GridDropDownColumn DataField="ConnectionProgramID" DataSourceID="ConPrograms" HeaderText="Connection Program" ListTextField="ProgramName" ListValueField="ConnectionProgramID" UniqueName="ConnectionProgramID" 
                                    ColumnEditorID="GridDropDownColumnEditor1" SortExpression="ConnectionProgramID" EmptyListItemValue="">  
                                </telerik:GridDropDownColumn> 
                                <telerik:GridCheckBoxColumn UniqueName="MaintenanceContract" DataField="MaintenanceContract" HeaderText="Maintenance Contract" /> 
                                <telerik:GridDropDownColumn DataField="ContactID" DataSourceID="ContactLookUp" HeaderText="Contact Name" ListTextField="ContactName" ListValueField="ContactID" UniqueName="ContactID" ColumnEditorID="GridDropDownColumnEditor1" 
                                    SortExpression="ContactID" EmptyListItemValue="">  
                                </telerik:GridDropDownColumn> 
                                <telerik:GridDateTimeColumn UniqueName="ExpirationDate" DataField="ExpirationDate" DataFormatString="{0:d}" HeaderText="Expiration Date" /> 
                                <telerik:GridCheckBoxColumn UniqueName="OffsiteCallForward" DataField="OffsiteCallForward" HeaderText="Call Forwarding?" /> 
                                <telerik:GridBoundColumn UniqueName="SystemAge" DataField="SystemAge" HeaderText="System Age" /> 
                                <telerik:GridBoundColumn UniqueName="Concerns" DataField="Concerns" HeaderText="Concerns" /> 
                                <telerik:GridButtonColumn ConfirmText="Delete this Item?" ConfirmDialogType="RadWindow" ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete" UniqueName="DeleteColumn">  
                                    <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" /> 
                                </telerik:GridButtonColumn> 
                            </Columns> 
                            <CommandItemTemplate> 
                                <br /> 
                                <asp:LinkButton ID="lnkPhone" runat="server" Height="32px" OnClientClick="openPhoneSystemsWindow('0');"><img style="border:0px;vertical-align:middle;" alt="" src="Images/AddRecord.gif" /> Add New Record </asp:LinkButton> 
                                &nbsp;&nbsp;  
                                <asp:LinkButton ID="lnkRefreshPhone" runat="server" Height="32px" Style="text-align: right;" OnClick="Grid_Refresh"><img style="border:0px;vertical-align:middle;" alt="" src="Images/Refresh.gif" /> Refresh </asp:LinkButton> 
                            </CommandItemTemplate> 
                        </MasterTableView> 
                    </telerik:RadGrid> 
                </telerik:RadPageView> 
            </telerik:RadMultiPage> 
        </telerik:RadPane> 
    </telerik:RadSplitter> 
</asp:Content> 
 



Help!
John Bachus
Top achievements
Rank 1
 answered on 24 Feb 2010
3 answers
136 views
Is there a way to tell the FileExplorer control to automatically expand the entire directory tree when it loads?
Fiko
Telerik team
 answered on 24 Feb 2010
19 answers
403 views
Hi,
In radgrid i want  the default criteria for filter to be "contains" on enter key press. Like if i give the filter criteria in names column as "s" and press enter key then it should show the result rather opening the filter menu and selecting "contains" from the menu.
Sebastian
Telerik team
 answered on 24 Feb 2010
8 answers
304 views
Hi!
I use myDbProvider for ImageManager. The user can delete and load files.
I need to be forbidden folder creation in ImageManager. How can I do it?
Rumen
Telerik team
 answered on 24 Feb 2010
2 answers
114 views

Requirements

RadControls version

2009Q3

.NET version

ALL

Visual Studio version

ALL

programming language

C#

browser support

all browsers supported by RadControls


PROJECT DESCRIPTION

A strategy for building a Section 508/WCAG Telerik radGrid page

Accessibility and translations can often result in a medusa head for code. On one hand you want a feature rich grid but you are constrained by Section 508.  Managing and tracking resource mnemonic across a large project becomes a nightmare (and very very boring code typing for developers which usually impacts quality control).  Another pain with a large site is consistency of presentation.

 

What if I claim that all you need to do is toss the code below into a page and be done with coding!

 

The Web Page Content:

   1: <telerik:RadGrid runat="server" ID="AccountSummaryGrid" DataSourceID="AccountSummaryDb" AccessKey="X">
   2:     <MasterTableView AutoGenerateColumns="false" DataKeyNames="AccountName">
   3:         <Columns>
   4:             <telerik:GridBoundColumn DataField="AccountName" UniqueName="Grid_AccountName">
   5:             </telerik:GridBoundColumn>
   6:             <telerik:GridBoundColumn DataField="Description" UniqueName="Grid_AccountDescription">
   7:             </telerik:GridBoundColumn>
   8:             <telerik:GridBoundColumn DataField="Balance" UniqueName="Grid_AccountBalance">
   9:             </telerik:GridBoundColumn>
  10:             <telerik:GridBoundColumn DataField="CreditLimit" UniqueName="Grid_AccountCreditLimit">
  11:             </telerik:GridBoundColumn>
  12:             <telerik:GridBoundColumn DataField="OwnershipType" UniqueName="Grid_OwnershipType">
  13:             </telerik:GridBoundColumn>
  14:         </Columns>
  15:     </MasterTableView>
  16: </telerik:RadGrid>

With the page behind code being a horrible:

   1: protected void Page_Load(object sender, EventArgs e)
   2: { 
   3:     RadGridUtilities.ApplyDefaultSettings(AccountSummaryGrid);
   4: }

There are many tricks (and enhancement not shown), but the first item is to give the user the option to put the site into Accessibility Mode. If you give that option then only the pages while in Accessibility Mode must comply with Section 508. You can be as feature rich as you want elsewhere!!

 

This is what the one C# statement above does.

  • Provide web site defaults to the grid (every grid…), you want the defaults changed – it occurs in one spot only not in 100 pages!
  • Provide translation that is based off of the Control.Id (SO no more “Button1” but descriptive “ButtonToRetrieveStatement”
  • Modify the grid for what you want to do for accessibility.

There are a few items that I excluded (like automatically creating Resx entries for every phrase dynamically and self-auditing for 508 compliance) so the code is clearer.

/// <summary>
/// Applies the default settings to the page. If user customization is implemented
/// the settings here would come from their preferences stored in a Session object.
/// </summary>
/// <param name="grid">a radGrid control</param>
/// <param name="onGetOnly">Determines if the settings are down on every postback or only on first GET</param>
public static void ApplyDefaultSettings(RadGrid grid, bool onGetOnly)
{
    // Uniquenames should have an underscore (_) in it. grid_ is the recommended prefix so that
    //localization may identify items used in grids
    char[] sepUnique = { '_', ' ' };

    // Items requiring     
    grid.ItemCreated += grid_ItemCreatedAddRowScope;

    // Get translations. For items that Telerik may have translated use fallback version. 
    grid.MasterTableView.Caption = ResourceTranslation.TranslateField(string.Format(CultureInfo.CurrentCulture, "%ContentPage%{0}_Caption%", grid.ID));
    grid.MasterTableView.CommandItemSettings.AddNewRecordText = ResourceTranslation.TranslateField("%MasterPage%Grid_AddNewRecordText%", grid.MasterTableView.CommandItemSettings.AddNewRecordText);
    grid.MasterTableView.CommandItemSettings.ExportToCsvText = ResourceTranslation.TranslateField("%MasterPage%Grid_ExportToCsvText%", grid.MasterTableView.CommandItemSettings.ExportToCsvText);
    grid.MasterTableView.CommandItemSettings.ExportToExcelText = ResourceTranslation.TranslateField("%MasterPage%Grid_ExportToExcelText%", grid.MasterTableView.CommandItemSettings.ExportToExcelText);
    grid.MasterTableView.CommandItemSettings.ExportToPdfText = ResourceTranslation.TranslateField("%MasterPage%Grid_ExportToPdfText%", grid.MasterTableView.CommandItemSettings.ExportToPdfText);
    grid.MasterTableView.CommandItemSettings.ExportToWordText = ResourceTranslation.TranslateField("%MasterPage%Grid_ExportToWordText%", grid.MasterTableView.CommandItemSettings.ExportToWordText);
    grid.MasterTableView.CommandItemSettings.RefreshText = ResourceTranslation.TranslateField("%MasterPage%Grid_RefreshText%", grid.MasterTableView.CommandItemSettings.RefreshText);
    grid.MasterTableView.CssClass = ResourceTranslation.TranslateField("%MasterPage%Grid_CssClass%", grid.MasterTableView.CssClass);
    grid.MasterTableView.Summary = ResourceTranslation.TranslateField(string.Format(CultureInfo.CurrentCulture, "%ContentPage%{0}_Summary%", grid.ID));

    // This section would be used if images are to be customized for languages (unlikely)
    //    grid.MasterTableView.CommandItemSettings.AddNewRecordImageUrl = ResourceTranslation.TranslateField(grid.MasterTableView.CommandItemSettings.AddNewRecordImageUrl);
    //    grid.MasterTableView.CommandItemSettings.ExportToCsvImageUrl = ResourceTranslation.TranslateField(grid.MasterTableView.CommandItemSettings.ExportToCsvImageUrl);
    //    grid.MasterTableView.CommandItemSettings.ExportToExcelImageUrl = ResourceTranslation.TranslateField(grid.MasterTableView.CommandItemSettings.ExportToExcelImageUrl);
    //    grid.MasterTableView.CommandItemSettings.ExportToPdfImageUrl = ResourceTranslation.TranslateField(grid.MasterTableView.CommandItemSettings.ExportToPdfImageUrl);
    //    grid.MasterTableView.CommandItemSettings.ExportToWordImageUrl = ResourceTranslation.TranslateField(grid.MasterTableView.CommandItemSettings.ExportToWordImageUrl);
    
    // Site specific options. 
    // If User Options are allowed, the user's setting would be assigned instead.
    grid.AllowPaging = true;
    grid.AllowSorting = true;
    grid.ExportSettings.FileName = grid.ID;
    grid.ExportSettings.IgnorePaging = true;
    grid.ExportSettings.OpenInNewWindow = true;
    grid.ExportSettings.Pdf.Author = "Lassesen Consulting, LLC";
    grid.ExportSettings.Pdf.PageTitle = grid.MasterTableView.Caption;
    grid.ExportSettings.Pdf.Subject = grid.ID;
    grid.MasterTableView.AllowPaging = true;
    grid.MasterTableView.AllowSorting = true;
    grid.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.TopAndBottom;
    grid.MasterTableView.CommandItemSettings.ShowExportToCsvButton = true;
    grid.MasterTableView.CommandItemSettings.ShowExportToExcelButton = true;
    grid.MasterTableView.CommandItemSettings.ShowExportToPdfButton = true;
    grid.MasterTableView.CommandItemSettings.ShowExportToWordButton = true;
    grid.MasterTableView.PagerStyle.Mode = GridPagerMode.NextPrevNumericAndAdvanced;
    grid.PageSize = 60;

    // Changes for accessibility on a Grid Level
    // Remember hanidcap can be cognitive or physical -- so trim lots
    // of features
    if (Section508.UserSetting)
    {
        grid.AllowCustomPaging = false;
        grid.AllowFilteringByColumn = false;
        grid.AllowMultiRowEdit = false;
        grid.AllowMultiRowSelection = false;
        grid.MasterTableView.AllowPaging = false;
        grid.MasterTableView.AllowSorting = false;
        grid.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.None;
        grid.MasterTableView.CommandItemSettings.ShowExportToCsvButton = false;
        grid.MasterTableView.CommandItemSettings.ShowExportToExcelButton = false;
        grid.MasterTableView.CommandItemSettings.ShowExportToPdfButton = false;
        grid.MasterTableView.CommandItemSettings.ShowExportToWordButton = false;
        grid.MasterTableView.ShowGroupFooter = false;
        grid.ShowGroupPanel = false;
        grid.ShowStatusBar = false;
    }

    int colNo = 0;
    foreach (GridColumn col in grid.MasterTableView.Columns)
    {
        // uniquekeys are assumed to be compounded with an underscore
        //separator. Only last part is used as HeaderAbbr
        var translationkey = col.UniqueName;
        var parts = col.UniqueName.Split(sepUnique, System.StringSplitOptions.RemoveEmptyEntries);
        col.HeaderAbbr = parts[parts.Length - 1];
        // CHANGES for Accessibilty at a Column Level
        if (Section508.UserSetting)
        {
            col.AutoPostBackOnFilter = false;
            col.Groupable = false;
            col.HeaderButtonType = GridHeaderButtonType.PushButton;
            col.Resizable = false;
        }
        string tooltipMnemonic = string.Empty;
        //Determine if sortable and adopt appropriate tooltip
        if (grid.AllowSorting)
        {            
            if (! string.IsNullOrEmpty(col.SortExpression))
            {
                tooltipMnemonic = "Sort";
            }
            tooltipMnemonic =string.Format(CultureInfo.CurrentCulture, "%ContentPage%{0}_{1}Tooltip%", translationkey,tooltipMnemonic);
            col.HeaderTooltip = ResourceTranslation.TranslateField(tooltipMnemonic);
        }
        col.HeaderText = ResourceTranslation.TranslateField(string.Format(CultureInfo.CurrentCulture, "%ContentPage%{0}%", translationkey));
    }
}

 

The first item of importance is the event handler that is added

grid.ItemCreated += grid_ItemCreatedAddRowScope;

 

Grids require at least one <td scope=”row”> for Section 508 which is not natively provided by Telerik, so we must add it while the item is being created. This is done with the code below. The columns are those that are in the DataKeyNames, which makes it almost happens by designed-accident.

   1: /// <summary>
   2: /// Routine to add scope="row" to the grid for 508 compliance. The items are those specified in
   3: /// DataKeyNames
   4: /// </summary>
   5: /// <param name="sender">a telerik radgrid control</param>
   6: /// <param name="e"></param>
   7: static void grid_ItemCreatedAddRowScope(object sender, GridItemEventArgs e)
   8: {
   9:     if (e.Item is GridDataItem)
  10:     {
  11:         GridDataItem dataItem = e.Item as GridDataItem;
  12:         foreach (string key in dataItem.OwnerTableView.DataKeyNames)
  13:         {
  14:             foreach (GridColumn col in dataItem.OwnerTableView.Columns)
  15:             {
  16:                 if (col.IsBoundToFieldName(key))
  17:                 {
  18:                     TableCell cell = dataItem[col.UniqueName];
  19:                     cell.Attributes["scope"] = "row";
  20:                 }
  21:             }
  22:         }
  23:     }
  24: }

 

The other item is the ResourceTranslation.TranslateField which is a widget between the code and the usual handling of resources. It allows me to identify if a resource is missing as well as do some fancy stuff like “lookup the term and if you do not find it, then use what Telerik provides”;

 

That’s it.


From one of my blogs, http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/
Mark Galbreath
Top achievements
Rank 2
 answered on 24 Feb 2010
0 answers
189 views
I just got into LINQ and read the chapters on it in Pro C# 2008 and the .NET 3.5 Platform and Pro ASP.NET 3.5 in C# 2008 (both from Apress).  I have run into an obstacle that I hope is not insurmountable: can I use a data projection when building a DataTable from a DataSet to be used as a datasource for a RadGrid?  Andrew Troelsen (Pro C# 2008) states that I cannot, but I have found no corroboration through Google.

For example, given I have an in-memory DataSet, ds, returned from Oracle that I want to use as the primary datasource for all RadGrids in my application (in other words, each RadGrid will take a subset of data from ds).  How do I make the following work?

1    var results = from t in ds.Tables[ 0 ].AsEnumerable()  
2  
3        group t by t.Field<string>( "MDEP" ), t.field<string>( "MDEP_DESC" ) into g  
4             
5        orderby g.Field<string>( "MDEP" )  
6             
7        select new {     
8           MDEP = g.Field<string>( "MDEP" ),  
9           MDEP_DESC = g.Field<string>( "MDEP_DESC" ),  
10          OA = g.Field<string>( "OA" ),  
11          OA_DESC = g.Field<string>( "OA_DESC" ),  
12          FY06 = g.Field<Int32>( "FY06" ),  
13          FY07 = g.Field<Int32>( "FY07" ),  
14          FY08 = g.Field<Int32>( "FY08" ),  
15          FY09 = g.Field<Int32>( "FY09" )  
16        };  
17  
18
19    DataTable dt = new DataTable();
20    dt = results.CopyToDataTable();
18    radGrid1.DataSource = dt; 

The compiler freaks out on line #3, claiming there is no "GroupBy" function for AsEnumerable(), which is more or less what Troelsen says will happen in his book.  The thing is, I HAVE to have these fields grouped.

I suspect that line #1 results in a list of datarows, which cannot be individually grouped, but I don't know LINQ well enough yet.

Any ideas?

tia,
Mark
Mark Galbreath
Top achievements
Rank 2
 asked on 24 Feb 2010
3 answers
138 views


When somebody clicks the left right arrow on calendar to change month..only 1 month should be moved..i mean if the calendar shows february and march and user clicks left arrow, then it should show january and february..currently it will show december and January.............I have set the  properties .... 

 

MultiViewColumns="1"  MultiViewRows="2"  Height="150"  EnableMultiSelect="false"  ShowOtherMonthsDays="false"
            Please tell me how will i solve this problem.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Iana Tsolova
Telerik team
 answered on 24 Feb 2010
3 answers
169 views
In the documentation for the RadNumericTextBox, there is the following line:
RadNumericTextBox does not support maximum and minimum values with a greater magnitude than +/- 2^46. Setting the MaxValue property to more than 2^46 or the MinValue property to less than -2^46 can cause abnormalities in the RadNumericTextBox behavior.

I need to use it with a larger value than 2^46, what sort of "abnormalities" should I look out for?

Thanks!
Veli
Telerik team
 answered on 24 Feb 2010
1 answer
128 views
Hi..

I am tagging the text in my editor using xhtml as in the following:
<my:Comment 
    
class=comment 
    
commentValue="comment text for arrested">ARRESTED
</my:Comment> MAN FOUND IN DITCH 

I want to be able to show a different context menu if the user right clicks the word "Arrested" rather than the normal context menu that shows when they right click the words "MAN" or "FOUND" etc...

I began by trying to implement the example shown in this forum post
http://www.telerik.com/community/forums/aspnet-ajax/editor/changing-context-menu-programmatically-client-side.aspx

however, the editor doesn't seem to understand the Comment tag.  It worked when I followed the example and used an IMG, but I would like it to work for the custom tags that I am defining.

Is this possible?
Dobromir
Telerik team
 answered on 24 Feb 2010
10 answers
236 views

Hello,

I'm attemping to populate a RadListBox with data from a SQL Server database. I've never done this in a Sharepoint environment so I tried it first in a straight ASP.NET project that I created with Visual Studio 2008. I copied the code example provided in the documentation almost to the letter and it all worked perfectly. The same code will not work in the Sharepoint project.
 

I'm creating the solution with Visual Studio 2008 and Visual Studio Extensions for Windows Sharepoint Services (VSeWSS). I'm putting the code to retrieve the data and populate the RadListBox in a C# code-behind file.
 

At least one difference between the Sharepoint and ASP.NET programs is that I can run the ASP.NET code through the local development server to test it, something that I cannot do with Sharepoint (I must build and deploy it to the Sharepoint server when I want to test the code).

Based on this I thought the problem might lie in the web.config file. I tried adding the System.Data assembly as a safe control, but that didn't work. Unfortunately it seems that I cannot debug a Sharepoint app as I can any other Visual Studio project so I cannot even provide a descriptive error message, only a web page that won't load.

Any suggestions or ideas would be greatly appreciated.

Thank you

Dimitar Milushev
Telerik team
 answered on 24 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?