Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
48 views
Hi,
I am facing issues while converting my application from classic RadControl to ASP.NET AJAX radcontrol.
My requirement is that on row click of one grid (dgProductGroup in the below code snippet, I need to update dgProduct).
Earliler I was using the below code in my ASPX page:

<radA:RadAjaxManager 
            ID="RadAjaxManager1" 
            runat="server">
        <AjaxSettings>
            <radA:AjaxSetting AjaxControlID="dgproductGroups">
                <UpdatedControls>
                    <radA:AjaxUpdatedControl ControlID="dgProducts" LoadingPanelID = "loadProducts" />
                    <radA:AjaxUpdatedControl ControlID="dgFileList" LoadingPanelID = "loadFileDetails" />
                </UpdatedControls>
            </radA:AjaxSetting>
            <radA:AjaxSetting AjaxControlID="dgProducts">
                <UpdatedControls>
                    <radA:AjaxUpdatedControl ControlID="dgFileList" LoadingPanelID = "loadFileDetails" />
                </UpdatedControls>
            </radA:AjaxSetting>
            <radA:AjaxSetting AjaxControlID="dgFileList">
                <UpdatedControls>
                    <radA:AjaxUpdatedControl ControlID="dgFileList" LoadingPanelID = "loadFileDetails" />
                </UpdatedControls>
            </radA:AjaxSetting>
            <radA:AjaxSetting AjaxControlID="btnShowObsolete">
                <UpdatedControls>
                    <radA:AjaxUpdatedControl ControlID="dgFileList" LoadingPanelID = "loadFileDetails" />
                </UpdatedControls>
            </radA:AjaxSetting>
            <radA:AjaxSetting AjaxControlID="btnObsolete">
                <UpdatedControls>
                    <radA:AjaxUpdatedControl ControlID="dgFileList" LoadingPanelID = "loadFileDetails" />
                </UpdatedControls>
            </radA:AjaxSetting>
        </AjaxSettings>
        <ClientEvents OnResponseReceived = "OnAjaxDataReceived" OnRequestStart = "OnAjaxDataSentStart"/>
    </radA:RadAjaxManager>
    <radA:AjaxLoadingPanel 
            id="loadProducts" 
            style="width:320px;padding-top:30px;" 
            runat="server">
        <asp:Image 
            ID="Image2" 
            ImageUrl="~/RadControls/AJAX/Skins/Default/MSN_Blue.gif" 
            AlternateText="Loading" 
            BorderWidth="0px" 
            Runat="server">
        </asp:Image>
    </rada:AjaxLoadingPanel>
    <radA:AjaxLoadingPanel 
            id="loadFileDetails" 
            style="width:320px;padding-top:130px;" 
            runat="server">
        <asp:Image 
            ID="Image3" 
            ImageUrl="~/RadControls/AJAX/Skins/Default/MSN_Blue.gif" 
            AlternateText="Loading" 
            BorderWidth="0px" 
            Runat="server">
        </asp:Image>
    </rada:AjaxLoadingPanel>


And this was the javascript part.

function OnAjaxDataReceived()
    {
        if(dgProductsDisabled = true)
        {
            EnableGrid('ctl00_CntPlHolder_dgProducts');
            dgProductsDisabled = false;
        }
          
        EnableGrid('ctl00_CntPlHolder_dgproductGroups');
    }
  
function OnAjaxDataSentStart()
    {
        //PRODUCTS DATAGRID WILL NOT BE DISABLED WHEN THE PRODUCT GROUPS GRID's ROW IS SELECTED 
        if(dgProductsDisabled = true)
        {
            DisableGrid('ctl00_CntPlHolder_dgProducts');
        }
          
        //DISABLING THE PRODUCT GROUPS DATAGRID UNTIL THE DATA IS RECIEVED FROM THE SERVER THROUGH RAD AJAX
        DisableGrid('ctl00_CntPlHolder_dgproductGroups');
    }
  
function EnableGrid(gridClientID)
    {
        window[gridClientID].AjaxRequest("dgproductGroups", "");
    }
      
    function DisableGrid(gridClientID)
    {
        try
        {
            gridCtrl = window[gridClientID];
            gridCtrl.Control.disabled = "disabled";
            gridCtrl.ClientSettings.Selecting.AllowRowSelect = false;
            gridCtrl.ClientSettings.Resizing.AllowColumnResize = false;
            gridCtrl.ClientSettings.Resizing.AllowRowResize = false;
            gridCtrl.ClientSettings.AllowColumnsReorder = false;
            gridCtrl.ClientSettings.AllowDragToGroup = false;
            gridCtrl.ClientSettings.EnablePostBackOnRowClick = false;
  
            var links = gridCtrl.Control.getElementsByTagName("a");
            var images = gridCtrl.Control.getElementsByTagName("img");
            var inputs = gridCtrl.Control.getElementsByTagName("input");
            var sortButtons = gridCtrl.Control.getElementsByTagName("span");
  
            for(var i = 0; i < links.length; i++)
            {
                links[i].href = "";
                links[i].onclick = function()
                {
                    return false;
                }
            }
              
            for(var i = 0; i < images.length; i++)
            {
                images[i].onclick = function()
                    {
                        return false;
                    }
            }
            for(var i = 0; i < sortButtons.length; i++)
            {
                sortButtons[i].onclick = function()
                {
                    return false;
                }
            }
              
            for(var i = 0; i < inputs.length; i++)
            {
                switch(inputs[i]. type)
                {
                    case "button":
                        inputs[i].onclick = function()
                        {
                            return false;
                        }
                        break;
                      
                    case "checkbox":
                        inputs[i].disabled = "disabled";
                        break;
                    case "radio":
                        inputs[i].disabled = "disabled";
                        break;
                    case "text":
                        inputs[i].disabled = "disabled";
                        break;
                    case "password":
                        inputs[i].disabled = "disabled";
                        break;
                    case "image":
                        inputs[i].onclick = function()
                        {
                            return false;
                        }
                        break;
                    case "file":
                        inputs[i].disabled = "disabled";
                        break;
                          
                    default:
                    break;
                }   
            }
              
            var scrollArea = document.getElementById(gridCtrl.ClientID + "_GridData");
  
            if(scrollArea)
            {
                scrollArea.disabled = "disabled";
            }
        }
        catch(e)
        {
            alert(e);
        
    }

With the new Rad Ajax, I either get error that object does not support the method (in javascript EnableGrid function) or the grid fails to load and I only see the loading image.
Can you please help me in this upgrade.

Thanks,
Ripunjay
Sebastian
Telerik team
 answered on 30 Jun 2011
5 answers
145 views
Hi All,
When I display the advanced form in my app (not Modal)...the RadScheduler "breaks up" the form into sections.
See attached image.

Anyone have any idea why this is happening?

Thank
Alex
Veronica
Telerik team
 answered on 30 Jun 2011
3 answers
170 views
hello,

How to unchecked the default saturday checked in RadSchedulerRecurrenceEditor in weekly option.
It always time checked the saturday in weekly option of RadSchedulerRecurrenceEditor.
I want to unchecked all the days in weekly option.

thanks

Best Regards,
Jiten
Veronica
Telerik team
 answered on 30 Jun 2011
5 answers
178 views
I am following the resource example (with changes) and I am getting an error (Microsoft JScript runtime error: Object doesn't support this property or method) when I am in the following function - it is bombing on slot.get_resource();

 

function isRoomOccupied(scheduler, start, end, slot, appointment)

{

//get the "Room" resource associated with the time slot

var currentRoom = slot.get_resource();

//get all appointments for this "room" in the specified period

var appointmentsForThisRoom = getAppointmentsInRangeByResource(scheduler, start, end, currentRoom, appointment);

//if the list of appointments is not empty there are other appointments in this slot

return appointmentsForThisRoom.get_count() > 0;

}

I am not sure what I am doing wrong. Thanks.

function isRoomOccupied(scheduler, start, end, slot, appointment)

 

{

 

//get the "Room" resource associated with the time slot

 

 

 

 

 

 

var currentRoom = slot.get_resource();

 

 

//get all appointments for this "room" in the specified period

 

 

 

 

 

 

var appointmentsForThisRoom = getAppointmentsInRangeByResource(scheduler, start, end, currentRoom, appointment);

 

 

//if the list of appointments is not empty there are other appointments in this slot

 

 

 

 

 

 

return appointmentsForThisRoom.get_count() > 0;

 

}

 

function warnIfOccupied(start, end, sender, args)

 

{

 

var slot = args.get_targetSlot();

 

 

var appointment = args.get_appointment();

 

 

 

if (isRoomOccupied(sender, start, end, slot, appointment))

 

{

alert(

"This room is not available in this time period.");

 

args.set_cancel(

true);

 

}

 

appointment.get_element().style.border =

"";

 

}

 

function onAppointmentResizeEnd(sender, args)

 

{

 

var start = args.get_appointment().get_start();

 

 

var end = args.get_targetSlot().get_endTime();

 

 

warnIfOccupied(start, end, sender, args);

}

 

function onAppointmentMoveEnd(sender, args)

 

{

 

var start = args.get_targetSlot().get_startTime();

 

 

var end = new Date(start.getTime() + args.get_appointment().get_duration());

 

 

warnIfOccupied(start, end, sender, args);

}

 

function onAppointmentInserting(sender, args)

 

{

 

var slot = args.get_targetSlot();

 

 

var start = slot.get_startTime();

 

 

var end = slot.get_endTime();

 

 

 

if (isRoomOccupied(sender, start, end, slot))

 

{

alert(

"This room is not available in this time period.");

 

args.set_cancel(

true);

 

}

}

 

 

 

<

 

telerik:RadScheduler runat="server" ID="RadScheduler1" OnClientAppointmentEditing="AppointmentEditing"

 

 

 

 

 

 

OnClientAppointmentInserting="AppointmentInserting" EnableCustomAttributeEditing="true"

 

 

 

 

 

 

SelectedDate="2009-07-26" DataSourceID="EventsDataSource" DataKeyField="MeetingID"

 

 

 

 

 

 

DataSubjectField="Description" DataStartField="Start" DataEndField="End" SelectedView="WeekView"

 

 

 

 

 

 

FirstDayOfWeek="Sunday" LastDayOfWeek="Saturday" Skin="Vista" ShowResourceHeaders="false"

 

 

 

 

 

 

CustomAttributeNames="Description,HostedBy,Room" Height="100%" Localization-ConfirmDeleteText="Are you sure you want to delete this meeting?"

 

 

 

 

 

 

TimelineView-UserSelectable="false" OnClientAppointmentMoveEnd="onAppointmentMoveEnd"

 

 

 

 

 

 

OnClientAppointmentResizeEnd="onAppointmentResizeEnd">

 

 

 

 

 

 

<ResourceTypes>

 

 

 

 

 

 

<telerik:ResourceType KeyField="Room" Name="Room" TextField="Room" ForeignKeyField="Room"

 

 

 

 

 

 

DataSourceID="RoomsDataSource" />

 

 

 

 

 

 

</ResourceTypes>

 

 

 

 

 

 

<AppointmentTemplate>

 

 

 

 

 

 

<div style="color: Maroon;">

 

 

 

 

 

<%

#Eval("Description")%></div>

 

 

 

 

 

<%

-- <br />--%>

 

 

<div style="color: Teal;">

 

 

 

 

 

 

</font>Host:&nbsp;<%#Eval("HostedBy")%></div>

 

 

 

 

 

<%

-- <br />--%>

 

 

<div style="color: Fuchsia;">

 

 

 

 

 

Room:

&nbsp;<%#Eval("Room")%></div>

 

 

 

 

 

 

</AppointmentTemplate>

 

 

 

 

 

 

</telerik:RadScheduler>

 

 

 

 

 

 

<asp:Button ID="btnGo" runat="server" Text="Go" Visible="false" />

 

 

 

 

 

 

<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>

 

 

 

 

 

 

<asp:SqlDataSource ID="EventsDataSource" runat="server" ProviderName="System.Data.SqlClient"

 

 

 

 

 

 

ConnectionString="<%$ ConnectionStrings:MCHPEVENTS %>" SelectCommand="SELECT [MeetingID], [Description], [Start], [End], [Room], [HostedBy], [Food], [Beverages], [Projector], [Easel], [Flipchart], [Microphone], [HotelAVSupplies], [Comments] FROM [Meetings]"

 

 

 

 

 

 

InsertCommand="INSERT INTO [Meetings] ([Description], [Start], [End], [Room]) VALUES (@Description, @Start, @End, @Room)"

 

 

 

 

 

 

UpdateCommand="UPDATE [Meetings] SET [Description] = @Description, [Start] = @Start, [End] = @End, [Room] = @Room WHERE (MeetingID = @MeetingID)"

 

 

 

 

 

 

DeleteCommand="DELETE FROM [Meetings] WHERE [MeetingID] = @MeetingID">

 

 

 

 

 

 

<DeleteParameters>

 

 

 

 

 

 

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

 

 

 

 

 

 

</DeleteParameters>

 

 

 

 

 

 

<UpdateParameters>

 

 

 

 

 

 

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

 

 

 

 

 

 

<asp:Parameter Name="Description" Type="String" />

 

 

 

 

 

 

<asp:Parameter Name="Start" Type="DateTime" />

 

 

 

 

 

 

<asp:Parameter Name="End" Type="DateTime" />

 

 

 

 

 

 

<asp:Parameter Name="Room" Type="String" />

 

 

 

 

 

 

</UpdateParameters>

 

 

 

 

 

 

<InsertParameters>

 

 

 

 

 

 

<asp:Parameter Name="Description" Type="String" />

 

 

 

 

 

 

<asp:Parameter Name="Start" Type="DateTime" />

 

 

 

 

 

 

<asp:Parameter Name="End" Type="DateTime" />

 

 

 

 

 

 

<asp:Parameter Name="Room" Type="String" DefaultValue="TBD" />

 

 

 

 

 

 

</InsertParameters>

 

 

 

 

 

 

</asp:SqlDataSource>

 

 

 

 

 

 

<asp:SqlDataSource ID="RoomsDataSource" runat="server" ProviderName="System.Data.SqlClient"

 

 

 

 

 

 

ConnectionString="<%$ ConnectionStrings:MCHPEVENTS %>" SelectCommand="SELECT DISTINCT([Room]) FROM [Meetings]">

 

 

 

 

 

 

</asp:SqlDataSource>

 

 

 

 

Veronica
Telerik team
 answered on 30 Jun 2011
1 answer
79 views
Hi,

I am using Master/Details Client-side Data Binding in latest teletik version - RadControls for ASP.NET AJAX Q1 2011 

'This is my WCF service 
 <OperationContract()> _
    Public Function GetdataSelect(ByVal startRowIndex As Integer, ByVal maximumRows As Integer, ByVal sortExpression As String, ByVal filterExpression As String) As MyData
        Dim data As GridBindingData = RadGrid.GetBindingData("LinqToSql.DataClassesDataContext", "TrnApproval", startRowIndex, maximumRows, sortExpression, filterExpression)
        Dim result As New MyData()
        Dim db As New DataClassesDataContext
        result.Data = From c In db.TrnApprovals Select c.TrnID, c.ApproverID
       
        result.Count = data.Count
        Return result
    End Function

While connecting with WCF service i am getting below error.

System.InvalidOperationException: Could not find the type specified in the ContextTypeName property of LinqDataSource ''. ---> System.Web.HttpException: Could not load type 'LinqToSql.DataClassesDataContext'. at System.Web.UI.WebControls.LinqDataSourceView.get_ContextType()
   at System.Web.UI.WebControls.LinqDataSourceView.CreateContextAndTable(DataSourceOperation operation)
   at System.Web.UI.WebControls.LinqDataSourceView.CreateContextAndTableForSelect()
   at System.Web.UI.WebControls.LinqDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments)
   at System.Web.UI.WebControls.LinqDataSourceView.Select(DataSourceSelectArguments arguments)
   at Telerik.Web.UI.GridLinqDataSource.GetData()
   at Telerik.Web.UI.RadGrid.GetBindingData(String contextTypeName, String tableName, Int32 startRowIndex, Int32 maximumRows, String sortExpression, String filterExpression)
   at GridBind.GetdataLoad() in E:\Developments\demowcf\App_Code\Gridbind.vb:line 145

Please do the needful.
Princy
Top achievements
Rank 2
 answered on 30 Jun 2011
3 answers
82 views
Hello,

I have a radgrid, which has 25 records displayed.  In the grid is a GridTemplateColumn with a RadComboBox in it.  The combo box has enabled loading on demand.  What I'd like to do is when one combo box loads, load them all.  I don't know if something like that is possible?  It's the same data for all.

Thanks,

Brian
Peter
Telerik team
 answered on 30 Jun 2011
3 answers
147 views
We have found that on pages containing the RadEditor web part, the page references/loads AssetPickers.js and HtmlEditor.js. On our public site, we do not need these files referenced or loaded because the content will only be viewed and will never be edited, therefore we do not need the editor functionality. (We use content deployment to push content to our live site.)

In order to reduce weight and page load time, is there a way to prevent HtmlEditor.js and AssetPickers.js from being referenced or loaded on our public facing site?

Thanks!
Stanimir
Telerik team
 answered on 30 Jun 2011
3 answers
106 views
Hi there,

I'm trying to bind controls in my webApplication to a ViewModel class.
The binding itself works fine, but i got a problem, resolving the correct objects.

I bound a RadGrid to an ObjectDataSource, refering my class "PersonsViewModel"
The select-method is
        public List<Person> GetPersons()
        {
            return DataProvider.GetPeople();
        }

Now I'd like to resolve the selectedItem for example:

        var items = RadGrid1.SelectedItems;
        Person p = items[0].DataItem as Person;

My problem is, that items[0].DataItem is always null.
I don't get why, because the item is databound.



Any help would be apprechiated.
Thanks,

Thomas
Iana Tsolova
Telerik team
 answered on 30 Jun 2011
1 answer
86 views
I am using a LoadOnDemand Combo Box because the amount of data can sometimes be in the 10s of thousands.  I have enabled virtualscrolling and ShowMoreResults.  My question is that when loading data in portions of 100 - when it has to make an ajax call back to the server to get more data - is there a way to show an animated image in the combo box or some type of text like "Loading.." while is retreiving the next batch of data from the server and showing it in the UI?
Princy
Top achievements
Rank 2
 answered on 30 Jun 2011
2 answers
160 views
Hi all,

My project has grown outside the scope of the functionality provided by RadDockLayout. I am hoping to create my own manager class which emulates the functionality currently provided to me by RadDockLayout. 

So, I have classes which inherit from RadDock and RadDockZone, CormantRadDock and CormantRadDockZone. I am letting RadDockLayout manage these objects, but it is a pain to constantly have to cast my RegisteredDocks collection constantly. In addition, I do the same sort of control regeneration that RadDockLayout provides, except applied to more controls. As such, I have a firm understanding of what is needed to manage these controls.

That being said, I would like to make sure I do not miss any hidden dependencies.

So, I use the events for RadDockLayout_SaveDockLayout and LoadDockLayout. I believe I can just append additional code to the Page_Load method to emulate what is occurring in RadDockLayout_LoadDockLayout (please correct me if this is an incorrect belief). I am unsure of how to emulate RadDockLayout_SaveDockLayout -- and would like some advice. How can my manager trigger on this event? 

Other than that, is there anything hidden going on that I should be aware of that would make removing RadDockLayout from a page full of dynamic RadDocks and RadDockZones?

Thanks

Sean
Pero
Telerik team
 answered on 30 Jun 2011
Narrow your results
Selected tags
Tags
+? more
Top users last month
Chester
Top achievements
Rank 1
Iron
Simon
Top achievements
Rank 1
Iron
Douglas
Top achievements
Rank 2
Iron
Iron
SUNIL
Top achievements
Rank 3
Iron
Iron
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Chester
Top achievements
Rank 1
Iron
Simon
Top achievements
Rank 1
Iron
Douglas
Top achievements
Rank 2
Iron
Iron
SUNIL
Top achievements
Rank 3
Iron
Iron
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?