Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
296 views
Hi,
Can someone please help me with the following issue.

I am using Frameset in default.aspx page
<frameset border="0" rows="75,*,10" id="0">
        <frame name="contentmenu" src="<%=menuUrl%>" scrolling="no" noresize="noresize" frameborder="0" />     
        <frameset border="0" cols="284,*" frameborder="0" framespacing="0" runat="server" id="colsFrameset" enableviewstate="false">
            <frame name="contenttree" src="ContentMenu.aspx" scrolling="no" frameborder="0" framespacing="0" border="0" runat="server" id="frameTree" class="TreeFrame" />
            <frame name="contentview" src="../UnderConstruction.aspx" frameborder="0" border="0" framespacing="0" runat="server" id="frameView" />
        </frameset>
        <frame name="contentfooter" src="footer.aspx" scrolling="no" noresize="noresize" frameborder="0" />    
        <noframes>
            <p id="p1">
                This HTML frameset displays multiple Web pages. To view this frameset, use a
                Web browser that supports HTML 4.0 and later.
            </p>
        </noframes>
    </frameset>

in my left frame in ContentMenu.aspx page I have created radtreeview with contextmenu. What I am trying to achieve is when the context menu will be clciked that time time a new page will be create on contentView frame. here is  my leftframe page source....
<script type="text/javascript">
     //<![CDATA[
     function LoadItem(elementName, elementUrl) {
         parent.frames['contentview'].location.href = elementUrl;
     }

     //]]>
    </script>
<
telerik:RadTreeView ID="RadTreeView1" runat="server" CausesValidation="false " OnNodeClick="RadTreeView1_NodeClick"
                   OnContextMenuItemClick="RadTreeView1_ContextMenuItemClick">
                   <ContextMenus>
                       <telerik:RadTreeViewContextMenu ID="RadTreeViewContextMenu1" runat="server">
                           <Items>
                               <telerik:RadMenuItem runat="server" Text="Add New Page" PostBack="true">
                               </telerik:RadMenuItem>
                               <telerik:RadMenuItem runat="server" Text="Remove" PostBack="true">
                               </telerik:RadMenuItem>
                           </Items>
                       </telerik:RadTreeViewContextMenu>
                   </ContextMenus>
                   <DataBindings>
                       <telerik:RadTreeNodeBinding Expanded="true" />
                   </DataBindings>
               </telerik:RadTreeView>

I am trying to call javascript function LoadItem when the contextmenu Item will be clicked. here is my codebehind file.
protected void RadTreeView1_NodeClick(object sender, RadTreeNodeEventArgs e)
        {
            this.NodeText = e.Node.Value;
 
        }
 
protected void RadTreeView1_ContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e)
        {
            if (e.MenuItem.Text == "Add New Page")
            {
                //radpanel1.Visible = true;
                //txtTile.Text = this.NodeText;
                e.MenuItem.NavigateUrl = "http://www.google.com";
                e.MenuItem.Target = "contentview";
            }
            else if (e.MenuItem.Text == "Remove")
            {
                RadTreeView1.SelectedNode.Remove();
            }
        }

but its not working. can anyone please help me to make work with calling javascript function with given url .
Thanks.
Nano
Top achievements
Rank 1
 answered on 17 Jan 2011
4 answers
115 views
Hi All,
I have seen some posts on this already, but don't think the work arounds apply to what I am experiencing.
Basically, if I setup the datagrid with a server-side ItemCommand event, the ItemIndex is correct.
Adding in a client-side OnCommand event, however, makes the ItemIndex server-side always 0 (zero).  Interestingly, the get_commandArgument returns the correct value within the OnGridCommand event (see example).
Why is this?  See below for an example.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridButtonIndex.aspx.cs"
    Inherits="TestTelerikWebApp.GridButtonIndex" %>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
    </telerik:RadScriptManager>
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function OnGridCommand(sender, args) {
                var grid = sender;
                debugger;
                if (args.get_commandName() == "InitInsert" && grid._editIndexes[0] >= 0) {
                    alert("Cannot add while editing a record.");
                    args.set_cancel(true);
                }
                if (args.get_commandName() == "Delete") {
                    if (grid._editIndexes[0] >= 0) {
                        alert("Cannot delete while editing a record.");
                        args.set_cancel(true);
                    }
                    else
                        var value = confirm("Are you sure you want to delete?");
                    if (!value)
                        args.set_cancel(true);
                }
            }
        </script>
    </telerik:RadCodeBlock>
    <div>
        <telerik:RadGrid ID="dgTest" runat="server" AutoGenerateColumns="False" GridLines="None"
            OnItemCommand="dgTest_ItemCommand" OnNeedDataSource="dgTest_NeedDataSource">
            <ClientSettings>
                <ClientEvents OnCommand="OnGridCommand" />
            </ClientSettings>
            <MasterTableView>
                <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
                <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
                    <HeaderStyle Width="20px"></HeaderStyle>
                </RowIndicatorColumn>
                <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
                    <HeaderStyle Width="20px"></HeaderStyle>
                </ExpandCollapseColumn>
                <Columns>
                    <telerik:GridBoundColumn DataField="Description" FilterControlAltText="Filter colDesc column"
                        HeaderText="Description" UniqueName="colDesc">
                    </telerik:GridBoundColumn>
                    <telerik:GridButtonColumn ButtonType="PushButton" CommandName="TestClick" FilterControlAltText="Filter colButt column"
                        Text="Press Me" UniqueName="colButt">
                    </telerik:GridButtonColumn>
                </Columns>
                <EditFormSettings>
                    <EditColumn FilterControlAltText="Filter EditCommandColumn column">
                    </EditColumn>
                </EditFormSettings>
            </MasterTableView>
            <FilterMenu EnableImageSprites="False">
            </FilterMenu>
            <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">
            </HeaderContextMenu>
        </telerik:RadGrid>
    </div>
    <asp:Label ID="lblFeedback" runat="server"></asp:Label>
    <telerik:RadAjaxManager runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="dgTest">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="dgTest" />
                    <telerik:AjaxUpdatedControl ControlID="lblFeedback" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    </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 System.Data;
using Telerik.Web.UI;
  
namespace TestTelerikWebApp
{
    public partial class GridButtonIndex : System.Web.UI.Page
    {
        protected DataTable GetData()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Description", typeof(string));
            DataRow dr = dt.NewRow();
            dr["Id"] = 1;
            dr["Description"] = "Test 1";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["Id"] = 2;
            dr["Description"] = "Test 2";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr["Id"] = 3;
            dr["Description"] = "Test 3";
            dt.Rows.Add(dr);
  
            return dt;
        }
  
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                  
            }
        }
  
        protected void dgTest_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
        {
            RadGrid rg = (RadGrid)sender;
            rg.DataSource = GetData();
        }
  
        protected void dgTest_ItemCommand(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName == "TestClick")
            {
                GridEditableItem gei = (GridEditableItem)(e.Item);
                lblFeedback.Text = "Item Index is : " + gei.ItemIndex.ToString();
            }
        }
    }
}


I am using the latest Telerik release with ASP.Net 40 (2010.3.1215.40).

Thanks for any insight.
Steele.
Steele
Top achievements
Rank 1
 answered on 17 Jan 2011
0 answers
107 views
Hi,
I asked this question on an old post that I do not know if it is still being monitored so I created a new thread...

I have created the two listboxes (like in example:"ListBox / Database Update") and couldn't get them to save to the DB on transfer because it was not capturing the ID. I had to change the parameter to grab the .SelectedValue of the Outgoing list box in order to get the items to insert into the db. Problem is when I do that and I choose the "move all" button it inserts the same value several times. I'll include the code for both examples. Just so you understand I have the listbox on the left (lstLoggedInUserAccess) pulling in all of the Stores that the Logged In user has access to. There is a combo box (cboUserDealerAcces) that the user selects a list of other users. The Logged In user then will give access to the selected user (of the cboUserDealerAcces combo box) by copying the stores from the left List to the Right list (lstSelectedUserAccess).

This code is what I have resorted to in order to get it to save to the database... but again, when I select the move all button it (understandably) inserts the same store several times because i have only captured one DealerID. I understand this but in this scenario would like to disable the 'move all' buttons. OR, The best option would be to get the lists working correctly where I could select several from the left and move them all to the right but until I'm able to capture the "DealerID" this is not an option.
 

<telerik:RadComboBox ID="cboUserDealerAccess" runat="server"
    DataSourceID="SqlDataSource6"
    DataTextField="LastName"
    DataValueField="UserInfoID" /> 
<asp:SqlDataSource runat="server" ID="SqlDataSource6" ConnectionString="<%$ ConnectionStrings:FT_Data %>"
    ProviderName="System.Data.SqlClient" SelectCommand="SELECT [LastName], [UserInfoID] FROM [UserInfo] ORDER By LastName" />   

 

<telerik:RadListBox runat="server" ID="lstLoggedInUserAccess" Height="200px" Width="230px"
    AllowTransfer="true" TransferToID="lstSelectedUserAccess" TransferMode="Copy" SelectionMode="Single" DataSourceID="SqlDataSource5" DataTextField="DealerName" DataKeyField="DealerID" DataValueField="DealerID" AutoPostBackOnTransfer="true"/>

 

<asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:FT_Data %>" ProviderName="System.Data.SqlClient"
SelectCommand="SELECT [DealerID], [DealerName] FROM [Dealer] ORDER By DealerName" OldValuesParameterFormatString="original_{0}" ConflictDetection="CompareAllValues" />  

 

<telerik:RadListBox runat="server" ID="lstSelectedUserAccess" Height="200px" Width="200px"
SelectionMode="Single" DataSourceID="SqlDataSource7" DataKeyField="DealerID" DataTextField="DealerName" DataValueField="DealerID" AllowAutomaticUpdates="true" AllowReorder="false" AllowDelete="True" 
AutoPostBackOnDelete="true" AllowTransfer="false"/> 

 

<asp:SqlDataSource ID="SqlDataSource7" runat="server" ConnectionString="<%$ ConnectionStrings:FT_Data %>" ProviderName="System.Data.SqlClient" 
SelectCommand="SELECT [Dealer].[DealerID], [Dealer].[DealerName] FROM [UserDealer] INNER JOIN [Dealer] ON [UserDealer].[DealerId] = [Dealer].[DealerID] WHERE ([UserDealer].[UserInfoId] = @UserInfoID)"
InsertCommand="INSERT INTO [UserDealer] ([UserInfoID], [DealerID]) VALUES (@UserInfoID, @DealerID)" 
DeleteCommand="DELETE FROM [UserDealer] WHERE (UserInfoId = @UserInfoID and DealerId = @DealerID)" 
OldValuesParameterFormatString="original_{0}" ConflictDetection="CompareAllValues" >  

 

 

<DeleteParameters>
<asp:ControlParameter Name="DealerID" Type="Int32" ControlID="lstSelectedUserAccess" PropertyName="SelectedValue" />      <asp:ControlParameter Name="UserInfoID" DbType="Int32" ControlID="cboUserDealerAccess" PropertyName="SelectedValue"/> 
</DeleteParameters 

 

<InsertParameters>
<asp:ControlParameter Name="DealerID" Type="Int32" ControlID="lstLoggedInUserAccess" PropertyName="SelectedValue" />
<asp:ControlParameter Name="UserInfoID" DbType="Int32" ControlID="cboUserDealerAccess" PropertyName="SelectedValue"/>
</InsertParameters 

 

<SelectParameters>
<asp:ControlParameter Name="UserInfoID" DbType="Int32" ControlID="cboUserDealerAccess" PropertyName="SelectedValue"/>
</SelectParameters>  

 

 

</asp:SqlDataSource>

When I change the INSERT parameter to this (see below) then it comes back empty and gives an error "Cannot Insert a Null..."

<asp:Parameter Name="DealerID" Type="Int32"/>

Marc
Top achievements
Rank 1
 asked on 16 Jan 2011
0 answers
49 views
hi
how can we add show business hour button
<A href="http://ogq1aw.blu.livefilestore.com/y1p80iKanTwm-VF7eS6g0Bzl63pa-pJ0G1O6GLELuN6kPUe61u8xjx5a5nORWZy4meBdIrikp3PvZjTVKNG050TF1b6ucj5y3e8/5.png?psid=1">http://ogq1aw.blu.livefilestore.com/y1p80iKanTwm-VF7eS6g0Bzl63pa-pJ0G1O6GLELuN6kPUe61u8xjx5a5nORWZy4meBdIrikp3PvZjTVKNG050TF1b6ucj5y3e8/5.png?psid=1</A>
Ajay
Top achievements
Rank 1
 asked on 16 Jan 2011
4 answers
184 views
Hi,

 I am having list of holidays based on the month (in the stored procedure)... i need to display the holidays on the calendar..month wise. like jan1st new year on the date...Could you please let me know ,, how to do this.... 
Brown
Top achievements
Rank 1
 answered on 16 Jan 2011
1 answer
29 views
Version 2008.01.0619.35 here.  I'm using a RadComboBox with EnableLoadOnDemand = true.  I notice that the dropdown list requires me to type in two characters before the OnItemsRequested event fires.  It works just fine in Firefox, the event fires as soon as the first character is entered.  Is this a known issue with this version?  Is there a workaround?

Thanks
Kate
Telerik team
 answered on 15 Jan 2011
0 answers
61 views
hi,

 evrything is right and if if i am exporting that in ical from rad schedular it works properly in outlook
 showing all recursive instances of it 

but in rad schedular it only showing first instance when i am navigating to second month it showing blank ?????
Surender Rawat
Top achievements
Rank 1
 asked on 15 Jan 2011
2 answers
99 views
Hi,
i am looking to create something like this demo
http://demos.telerik.com/aspnet-ajax/scheduler/examples/outlook2007/defaultcs.aspx

i want to use a simple xml file which is located in my App_Data folder, I simply copied all the relevant code from this demo and created a user control for it, All the UI is getting displayed correctly, but the data from the XML file is'nt, please advice what i may be missing?, i tried to debug and i am seeing that the Provider Object is getting populated and is not null, i can also see the innerxml property with the xml.

provider =

new XmlSchedulerProvider(Server.MapPath("~/App_Data/test.xml"), false);

 


ASCX file
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Calendar.ascx.cs" Inherits="CMSWebParts_Grafica_Calendar" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<style type="text/css">
.example-panel
{
    width: 743px;
    height:560px;
    padding-top: 34px;
    padding-left: 7px;
}
  
.example-panel .title
{
    color:#000;
    font: 14px 'Segoe UI', Arial, sans-serif;
    position:absolute;
    top: 5px;
    padding-left: 5px;
}
  
.RadSplitter
{
    border: none !important;
    margin: 0 !important;
}
  
.RadPanelBar .rootGroup
{
    border-left: none;
    border-right: none;
}
  
.calendar-container
{
    width:220px;
    margin: 7px auto;
}
  
#RadScheduler1Panel
{
    width: 100%;
    overflow: hidden;
}
  
div.RadScheduler
{
    width: 100%;
}
  
/* Styles for the appointment Subject */
.RadScheduler .rsAptSubject 
{
    text-align: left; 
    margin: 0 0 3px;
    font-size: 11px; 
    font-weight: bold; 
    color: #369;
    height: 17px;
    border-bottom: 1px solid #8bf;
    width: 100%; 
}     
  
/* Remove the Subject underline for all-day appointments */
.RadScheduler .rsAllDayRow .rsAptSubject 
{
    border-bottom: none;
}
      
</style>
<script type="text/javascript">
    /* Firefox resize scrollable content */
function hideScrollableArea(sender, eventArgs) {
if ($telerik.isFirefox)
$telerik.$('.rsContentScrollArea').css('overflow', 'hidden');
}
function showScrollableArea(sender, eventArgs) {
if ($telerik.isFirefox)
 $telerik.$('.rsContentScrollArea').css('overflow', 'auto');
}
  
</script>
  
<telerik:RadAjaxManager runat="Server" ID="RadAjaxManager1">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadCalendar1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadCalendar2" />
                <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="RadCalendar2">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadCalendar1" />
                <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="chkDevelopment">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="chkMarketing">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="chkQ1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="chkQ2">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="RadScheduler1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadScheduler1" LoadingPanelID="RadAjaxLoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="WebBlue" />
<div class="example-panel exampleContainer">
            <div class="title">My Schedule</div>
<telerik:RadSplitter runat="server" ID="RadSplitter1" PanesBorderSize="0" Width="720px" Height="100%" Skin="WebBlue">
    <telerik:RadPane runat="Server" ID="leftPane" Width="240px" MinWidth="240" MaxWidth="300" Height="100%"
        Scrolling="None" OnClientResizing="hideScrollableArea" OnClientResized="showScrollableArea"
        OnClientExpanding="hideScrollableArea" OnClientExpanded="showScrollableArea"
        OnClientCollapsing="hideScrollableArea" OnClientCollapsed="showScrollableArea">
        <div class="calendar-container">
            <telerik:RadCalendar runat="server" ID="RadCalendar1" Skin="WebBlue" AutoPostBack="true"
                EnableMultiSelect="false" DayNameFormat="FirstTwoLetters" EnableNavigation="true"
                EnableMonthYearFastNavigation="false" OnSelectionChanged="RadCalendar1_SelectionChanged"
                OnDefaultViewChanged="RadCalendar1_DefaultViewChanged">
            </telerik:RadCalendar>
            <telerik:RadCalendar runat="server" ID="RadCalendar2" Skin="WebBlue" AutoPostBack="true"
                EnableMultiSelect="false" DayNameFormat="FirstTwoLetters" EnableNavigation="false"
                EnableMonthYearFastNavigation="false" OnSelectionChanged="RadCalendar2_SelectionChanged">
            </telerik:RadCalendar>
        </div>
        <telerik:RadPanelBar runat="server" Skin="WebBlue" ID="PanelBar" Width="100%">
            <Items>
                <telerik:RadPanelItem runat="server" Text="My Team Calendars" Expanded="true">
                    <Items>
                        <telerik:RadPanelItem runat="server">
                            <ItemTemplate>
                                <div class="rpCheckBoxPanel">
                                    <div>
<asp:CheckBox ID="chkDevelopment" runat="server" Text="Development" Checked="true"
AutoPostBack="true" OnCheckedChanged="CheckBoxes_CheckedChanged" />
                                    </div>
                                    <div>
<asp:CheckBox ID="chkMarketing" runat="server" Text="Marketing" Checked="true" AutoPostBack="true"
OnCheckedChanged="CheckBoxes_CheckedChanged" />
                                    </div>
                                </div>
                            </ItemTemplate>
                        </telerik:RadPanelItem>
                    </Items>
                </telerik:RadPanelItem>
                <telerik:RadPanelItem runat="server" Text="My Calendar" Expanded="true">
                    <Items>
                        <telerik:RadPanelItem runat="server">
                            <ItemTemplate>
                                <div class="rpCheckBoxPanel">
                                    <div>
<asp:CheckBox ID="chkQ1" runat="server" Text="Personal" Checked="true" AutoPostBack="true"
OnCheckedChanged="CheckBoxes_CheckedChanged" />
                                    </div>
                                    <div>
<asp:CheckBox ID="chkQ2" runat="server" Text="Work" Checked="true" AutoPostBack="true"
OnCheckedChanged="CheckBoxes_CheckedChanged" />
                                    </div>
                                </div>
                            </ItemTemplate>
                        </telerik:RadPanelItem>
                    </Items>
                </telerik:RadPanelItem>
            </Items>
        </telerik:RadPanelBar>
    </telerik:RadPane>
    <telerik:RadSplitBar runat="server" ID="RadSplitBar2" CollapseMode="Forward" />
    <telerik:RadPane runat="Server" ID="rightPane" Scrolling="None" Width="470px" Height="100%">
        <telerik:RadScheduler runat="server" ID="RadScheduler1" Skin="WebBlue"
            ShowFooter="True"
            Height="100%"
            DayStartTime="08:00:00" DayEndTime="22:00:00"                        
            FirstDayOfWeek="Monday" LastDayOfWeek="Friday"
            EnableDescriptionField="true"
            AppointmentStyleMode="Default" 
            DataKeyField="ID"
            DataSubjectField="Subject"
            DataStartField="Start"
            DataEndField="End"   
            OnNavigationComplete="RadScheduler1_NavigationComplete"
            OnAppointmentDataBound="RadScheduler1_AppointmentDataBound"
            OnAppointmentDelete="RadScheduler1_AppointmentDelete"
            OnAppointmentUpdate="RadScheduler1_AppointmentUpdate"
            OnAppointmentInsert="RadScheduler1_AppointmentInsert">
            <AdvancedForm Modal="true" />
            <TimelineView UserSelectable="false" />
            <ResourceStyles>
             <%--AppointmentStyleMode must be explicitly set to Default (see above) otherwise setting BackColor/BorderColor
             will switch the appointments to Simple rendering (no rounded corners and gradients)--%>
                <telerik:ResourceStyleMapping Type="Calendar" Text="Development"/>
                <telerik:ResourceStyleMapping Type="Calendar" Text="Marketing" ApplyCssClass="rsCategoryRed" />
                <telerik:ResourceStyleMapping Type="Calendar" Text="Work" ApplyCssClass="rsCategoryOrange" />
            </ResourceStyles>
            <AppointmentTemplate>
                <div class="rsAptSubject">
                    <%# Eval("Subject") %>
                </div>
                <%# Eval("Description") %>
            </AppointmentTemplate>
<TimeSlotContextMenuSettings EnableDefault="true" />
<AppointmentContextMenuSettings EnableDefault="true" /> 
        </telerik:RadScheduler>
    </telerik:RadPane>
</telerik:RadSplitter>
</div>

ASCX.cs file
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using Telerik.Web.UI.Calendar;
using System.Collections.Generic;
  
  
public partial class CMSWebParts_Grafica_Calendar : System.Web.UI.UserControl
{
    private Dictionary<int, string> checkBoxIDs;
  
    XmlSchedulerProvider Provider
    {
        get
        {
            XmlSchedulerProvider provider;
            provider = new XmlSchedulerProvider(Server.MapPath("~/App_Data/test.xml"), false);
            return provider;
        }
    }
  
    protected void Page_Init(object sender, EventArgs e)
    {
        RadScheduler1.Provider = Provider;
        /*
        RadScheduler1.DataStartField = "Start";
        RadScheduler1.DataEndField = "End";
        RadScheduler1.DataSubjectField = "Subject";
        RadScheduler1.DataKeyField = "ID";
         */
    }
  
    private void Page_Load(object sender, EventArgs e)
    {
        checkBoxIDs = new Dictionary<int, string>();
        checkBoxIDs.Add(1, "chkDevelopment");
        checkBoxIDs.Add(2, "chkMarketing");
        checkBoxIDs.Add(3, "chkQ1");
        checkBoxIDs.Add(4, "chkQ2");
  
        if (!IsPostBack)
        {
            RadCalendar1.SelectedDate = RadScheduler1.SelectedDate;
            SyncCalendars();
        }
    }
  
    protected void RadScheduler1_NavigationComplete(object sender, SchedulerNavigationCompleteEventArgs e)
    {
        RadCalendar1.FocusedDate = RadScheduler1.SelectedDate;
        SyncCalendars();
    }
  
    protected void RadCalendar1_DefaultViewChanged(object sender, DefaultViewChangedEventArgs e)
    {
        SyncCalendars();
    }
  
    private void SyncCalendars()
    {
        RadCalendar2.FocusedDate = RadCalendar1.FocusedDate.AddMonths(1);
    }
  
    protected void RadCalendar1_SelectionChanged(object sender, SelectedDatesEventArgs e)
    {
        if (RadCalendar1.SelectedDates.Count > 0)
        {
            RadScheduler1.SelectedDate = RadCalendar1.SelectedDate;
            RadCalendar2.SelectedDate = RadCalendar1.SelectedDate;
        }
    }
  
    protected void RadCalendar2_SelectionChanged(object sender, SelectedDatesEventArgs e)
    {
        if (RadCalendar2.SelectedDates.Count > 0)
        {
            RadScheduler1.SelectedDate = RadCalendar2.SelectedDate;
            RadCalendar1.SelectedDate = RadCalendar2.SelectedDate;
        }
    }
  
    protected void RadScheduler1_AppointmentDataBound(object sender, SchedulerEventArgs e)
    {
        RadCalendarDay radCalendarDay = new RadCalendarDay(RadCalendar1);
        radCalendarDay.Date = e.Appointment.Start;
        radCalendarDay.ItemStyle.CssClass = "DayWithAppointments";
        RadCalendar1.SpecialDays.Add(radCalendarDay);
        RadCalendar2.SpecialDays.Add(radCalendarDay);
  
        e.Appointment.Visible = false;
  
        foreach (int key in checkBoxIDs.Keys)
        {
            CheckBox chkBox = PanelBar.Items[0].Items[0].FindControl(checkBoxIDs[key]) as CheckBox;
            if (chkBox == null)
                chkBox = PanelBar.Items[1].Items[0].FindControl(checkBoxIDs[key]) as CheckBox;
  
            if (chkBox.Checked)
            {
                Resource userRes = e.Appointment.Resources.GetResource("Calendar", key.ToString());
                if (userRes != null)
                {
                    e.Appointment.Visible = true;
                }
            }
        }
    }
    protected void RadScheduler1_AppointmentDelete(object sender, SchedulerCancelEventArgs e)
    {
        RadCalendar1.SpecialDays.Clear();
        RadCalendar2.SpecialDays.Clear();
    }
    protected void RadScheduler1_AppointmentUpdate(object sender, AppointmentUpdateEventArgs e)
    {
        RadCalendar1.SpecialDays.Clear();
        RadCalendar2.SpecialDays.Clear();
    }
    protected void RadScheduler1_AppointmentInsert(object sender, SchedulerCancelEventArgs e)
    {
        if (e.Appointment.Resources.Count < 1)
            e.Appointment.Resources.Add(RadScheduler1.Resources.GetResource("Calendar", "1"));
    }
    protected void CheckBoxes_CheckedChanged(object sender, EventArgs e)
    {
        RadScheduler1.Rebind();
    }
  
  
}

test.xml
<?xml version="1.0" encoding="utf-8"?>
<Appointments>
  <NextID>3</NextID>
  <Resources>
      <Room>
          <Key>1</Key>
          <Text>Meeting room 101</Text>
      </Room>
      <Room>
          <Key>2</Key>
          <Text>Meeting room 201</Text>
      </Room>
      <User>
          <Key>1</Key>
          <Text>Alex</Text>
      </User>
      <User>
          <Key>2</Key>
          <Text>Bob</Text>
      </User>
      <User>
          <Key>3</Key>
          <Text>Charlie</Text>
      </User>
  </Resources>
  <Appointment>
      <ID>1</ID>
      <Subject>Technical meeting</Subject>
      <Start>2010-09-30T06:00Z</Start>
      <End>2010-09-30T07:00Z</End>
      <RecurrenceRule>
          <![CDATA[
          DTSTART:20100930T060000Z
          DTEND:20100930T070000Z
          RRULE:FREQ=DAILY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR;
          ]]>
      </RecurrenceRule>
      <Resources>
          <Room Key="1" />
          <User Key="1" />
      </Resources>
      <Attribute Key="CustomAttribute" Value="1" />
  </Appointment>
  <Appointment>
      <ID>2</ID>
      <Subject>Lunch</Subject>
      <Start>2010-09-09T09:00Z</Start>
      <End>2010-09-09T10:00Z</End>
      <Resources>
          <User Key="1" />
      </Resources>
  </Appointment>
</Appointments>
jonnyO
Top achievements
Rank 1
 answered on 15 Jan 2011
4 answers
1.3K+ views
Hello,

I have a RadGrid in which I may need to hide a column in the detail tables of a Hierarchical table depending on the configuration of the user logged into the system.  I cannot determine how to do this since I am already doing some customization for a vertical scrollbar in the detail tables.  I am attempting to hide the UnitOfMeasure column.

Below are the designer and code-behind snippets for the table.

Designer:
<div>
<telerik:RadGrid ID="RadGridOrderStatus" runat="server" AutoGenerateColumns="false" PageSize="10" AllowSorting="True" AllowPaging="true" Skin="Simple" 
        CssClass="RegistrationFieldStyle" HeaderStyle-CssClass="RegistrationFieldStyle" Width="90%" HorizontalAlign="Left" ItemStyle-Wrap="false"
        OnItemCreated="RadGridOrderStatus_ItemCreated" OnPreRender="RadGridOrderStatus_PreRender"
        OnNeedDataSource="RadGridOrderStatus_NeedDataSource" OnItemDataBound="RadGridOrderStatus_ItemDataBound" OnDetailTableDataBind="RadGridOrderStatus_DetailTableDataBind">
    <PagerStyle Mode="NumericPages" />
    <ClientSettings>
        <Scrolling AllowScroll="true" UseStaticHeaders="true" />
    </ClientSettings>
    <MasterTableView TableLayout="Fixed" AllowMultiColumnSorting="true" DataKeyNames="OrderNumber" Name="ORDER" ShowFooter="false" HierarchyLoadMode="Client"
        PagerStyle-AlwaysVisible="true" HorizontalAlign="Left" >
        <DetailTables>
            <telerik:GridTableView DataKeyNames="OrderNumber" runat="server" Width="100%" Name="ORDERDETAIL">
                <ParentTableRelation>
                    <telerik:GridRelationFields DetailKeyField="OrderNumber" MasterKeyField="OrderNumber" />
                </ParentTableRelation>
                <NoRecordsTemplate>
                    <asp:Label ID="lblMsg" runat="server" Text="No Order Detail Records Found"></asp:Label>
                </NoRecordsTemplate>
                <Columns>
                    <telerik:GridBoundColumn HeaderText="NDC" HeaderButtonType="TextButton" DataField="NDCNumber" />
                    <telerik:GridBoundColumn HeaderText="Description" HeaderButtonType="TextButton" DataField="Description" />
                    <telerik:GridBoundColumn HeaderText="Unit Of Measure" HeaderButtonType="TextButton" DataField="UnitOfMeasure" />
                    <telerik:GridBoundColumn HeaderText="Requested Quantity" HeaderButtonType="TextButton" DataField="RequestedQty" />
                    <telerik:GridBoundColumn HeaderText="Shipped Quantity" HeaderButtonType="TextButton" DataField="ShippedQty" />
                    <telerik:GridBoundColumn HeaderText="Ship Date" HeaderButtonType="TextButton" DataField="ShipDate" DataFormatString="{0:MM/dd/yyyy hh:mm tt}" />
                    <telerik:GridHyperLinkColumn HeaderText="Tracking Number" HeaderButtonType="TextButton" DataTextField="Shipment.WaybillNumber" DataTextFormatString="{0}" 
                        DataNavigateUrlFields="Shipment.WaybillNumberCarrierUrl" DataNavigateUrlFormatString="{0}" Target="_blank" />
                    <telerik:GridBoundColumn HeaderText="Status" HeaderButtonType="TextButton" DataField="Shipment.Status" />
                </Columns>
            </telerik:GridTableView>
        </DetailTables>
        <Columns>
            <telerik:GridBoundColumn HeaderText="Order Date" HeaderButtonType="TextButton" DataField="OrderDate" DataFormatString="{0:MM/dd/yyyy hh:mm tt}" HeaderStyle-Width="120px" ItemStyle-HorizontalAlign="Left" />
            <telerik:GridBoundColumn HeaderText="Transaction Number" HeaderButtonType="TextButton" DataField="OrderNumber" HeaderStyle-Width="80px" ItemStyle-HorizontalAlign="Left" />
            <telerik:GridTemplateColumn HeaderText="Ordered By" HeaderButtonType="TextButton" HeaderStyle-Width="100px" ItemStyle-HorizontalAlign="Left">
                <ItemTemplate>
                    <asp:Label ID="ContactName" runat="server" />
                </ItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridBoundColumn HeaderText="Address" HeaderButtonType="TextButton" DataField="ShipToAddress.FullBlockAddress" HeaderStyle-Width="200px" ItemStyle-HorizontalAlign="Left" />
            <telerik:GridBoundColumn HeaderText="Status" HeaderButtonType="TextButton" DataField="OrderStatus" HeaderStyle-Width="100px" ItemStyle-HorizontalAlign="Left" />
        </Columns>
    </MasterTableView>
</telerik:RadGrid>
</div>

Code-Behind:
#region RadGridOrderStatus_DetailTableDataBind
protected void RadGridOrderStatus_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e)
{
        GridDataItem orderItem = e.DetailTableView.ParentItem;
        if (e.DetailTableView.Name.ToUpper() == "ORDERDETAIL" && 
            orderItem.DataItem is Order)
        {
            Order parentOrder = (Order)orderItem.DataItem;
            e.DetailTableView.DataSource = parentOrder.Products;
        }
}
#endregion
#region RadGridOrderStatus_ItemCreated
protected void RadGridOrderStatus_ItemCreated(object sender, GridItemEventArgs e)
{
    if (e.Item is GridNestedViewItem)
    {
        GridNestedViewItem nestedItem = e.Item as GridNestedViewItem;
        nestedItem.NestedViewCell.PreRender +=new EventHandler(NestedViewCell_PreRender);
    }
}
protected void NestedViewCell_PreRender(object sender, EventArgs e)
{
    ((Control)sender).Controls[0].SetRenderMethodDelegate(new RenderMethod(this.NestedViewTable_Render));
}
protected void NestedViewTable_Render(HtmlTextWriter writer, Control control)
{
    control.SetRenderMethodDelegate(null);
    writer.Write("<div style='height: 100%; overflow: scroll;'>");
    control.RenderControl(writer);
    writer.Write("</div>");
}
#endregion
#region RadGridOrderStatus_ItemDataBound
protected void RadGridOrderStatus_ItemDataBound(object sender, GridItemEventArgs e)
{
        if (e.Item is GridDataItem)
        {
            GridDataItem item = (GridDataItem)e.Item;
            if (e.Item.DataItem is Order)
            {
                Order parentOrder = (Order)e.Item.DataItem;
                Label contactName = (Label)e.Item.FindControl("ContactName");
                switch (LocalSettings.CurrentUserProfile.RegistrationType.RegistrationTypeCode)
                {
                    case EnumRegistrationType.HCP:
                    case EnumRegistrationType.PHARMACIST:
                        contactName.Text = parentOrder.ContactFirstName + " " +
                            parentOrder.ContactLastName;
                        break;
                }
            }
        }
}
#endregion
#region RadGridOrderStatus_NeedDataSource
protected void RadGridOrderStatus_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
         RadGridOrderStatus.DataSource = LocalSettings.CurrentOrderSearchResponse.Orders;
}
#endregion



Your assistance is greatly appreciated.

Thanks
Tom
Top achievements
Rank 1
 answered on 15 Jan 2011
3 answers
160 views
I have a Grid with fixed height and I want the pager positioned (fixed) at the bottom of the grid. Now, the pager is positioned relative to the last row, not the grid.

Placing the pager at the top of the grid gives me a fixed pager position but I really want the pager as a "footer".

Any ideas?
Jonx
Top achievements
Rank 2
 answered on 15 Jan 2011
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?