Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
81 views
I have a RibbonBar that I want to load from an xml file. However, there will be times when certain items within the ribbonbar will need to be disabled or enabled based on permissions. Is there a way to catch the loadfromxml event in the RibbonBar? and if so how do I go about doing so.
Ivan Zhekov
Telerik team
 answered on 01 Aug 2012
1 answer
69 views
Hi,
I'm looking for a very urgent clarification about the concurrency of CustomPaging and FilteringByColumn used together in a RadGrid.
I always have as a datasource a function that returns a DataTable considering both Filtering and Paging. This is necessary since the amount of datas is very significative and cannot return the whole amount of datas to the RadGrid and the Page it, but I have to return only the needed records and only in small paged size (50 records).

The approach I've used up to now is as illustrated here:
Default.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
 
<!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>
    <telerik:RadStyleSheetManager id="RadStyleSheetManager1" runat="server" />
</head>
<body>
    <form id="form1" runat="server">
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        <Scripts>
            <%--Needed for JavaScript IntelliSense in VS2010--%>
            <%--For VS2008 replace RadScriptManager with ScriptManager--%>
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
        </Scripts>
    </telerik:RadScriptManager>
    <script type="text/javascript">
        //Put your JavaScript code here.
    </script>
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    </telerik:RadAjaxManager>
    <div>
 
        <telerik:RadGrid runat="server" ID="RadGrid" AutoGenerateColumns="false" AllowCustomPaging="true" AllowPaging="true" PageSize="50"
        AllowFilteringByColumn="true" EnableLinqExpressions="false">
         
        <GroupingSettings CaseSensitive="False" />
             
            <ClientSettings>
                <Selecting AllowRowSelect="True" />
                <Scrolling AllowScroll="True" ScrollHeight="100%" UseStaticHeaders="True" />
            </ClientSettings>
 
            <PagerStyle AlwaysVisible="True" />
 
            <MasterTableView OverrideDataSourceControlSorting="True">
             
                <NoRecordsTemplate>
                      
                </NoRecordsTemplate>
             
                <Columns>
 
                <%--Some columns here--%>
 
                </Columns>
 
            </MasterTableView>
         
        </telerik:RadGrid>
    </div>
    </form>
</body>
</html>
  
Default.aspx.vb
Imports Telerik.Web.UI
Imports System.Data
 
Partial Class _Default
    Inherits System.Web.UI.Page
 
 
    Protected Sub RadGrid_NeedDataSource(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles RadGrid.NeedDataSource
 
         
        Dim VirtualItemCount As Integer = GetDatasVirtualItemsCount(RadGrid.MasterTableView.FilterExpression)
 
        RadGrid.MasterTableView.VirtualItemCount = VirtualItemCount
        RadGrid.VirtualItemCount = VirtualItemCount
 
 
        Dim startIndex As Integer = IIf((ShouldApplySortFilterOrGroup()), 0, RadGrid.CurrentPageIndex * RadGrid.PageSize)
        Dim pageSize As Integer = IIf((ShouldApplySortFilterOrGroup()), VirtualItemCount, RadGrid.PageSize)
 
 
        RadGrid.DataSource = GetDatas(startIndex, pageSize, RadGrid.MasterTableView.FilterExpression)
 
    End Sub
 
    Private isGrouping As Boolean = False
    Protected Sub RadGrid1_GroupsChanging(ByVal source As Object, ByVal e As GridGroupsChangingEventArgs)
        isGrouping = True
        If e.Action = GridGroupsChangingAction.Ungroup AndAlso RadGrid.CurrentPageIndex > 0 Then
            isGrouping = False
        End If
    End Sub
 
    Public Function ShouldApplySortFilterOrGroup() As Boolean
        Return RadGrid.MasterTableView.FilterExpression <> "" _
        OrElse (RadGrid.MasterTableView.GroupByExpressions.Count > 0 OrElse isGrouping) OrElse RadGrid.MasterTableView.SortExpressions.Count > 0
    End Function
 
    Private Function GetDatas(ByVal startIndex As Integer, ByVal pageSize As Integer, ByVal FilterExpression As String) As DataTable
 
        ' ------------
        ' Some Code that generates a datatable considering both CustomPaging and Filtering
        ' ------------
 
        Return New DataTable
 
    End Function
 
    Private Function GetDatasVirtualItemsCount(ByVal FilterExpression As String) As Integer
 
        ' ------------
        ' Some Code that count the number of rows considering Filtering
        ' ------------
 
        Return -1
 
    End Function
 
End Class

This works fine, but if I use Filtering then Paging gets disabled ! Now I need to use both together so my approach in the code behind has simply changed this way:
Imports Telerik.Web.UI
Imports System.Data
 
Partial Class _Default2
    Inherits System.Web.UI.Page
 
 
    Protected Sub RadGrid_NeedDataSource(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles RadGrid.NeedDataSource
 
 
        Dim VirtualItemCount As Integer = GetDatasVirtualItemsCount(RadGrid.MasterTableView.FilterExpression)
 
        RadGrid.MasterTableView.VirtualItemCount = VirtualItemCount
        RadGrid.VirtualItemCount = VirtualItemCount
 
 
        Dim startIndex As Integer = RadGrid.CurrentPageIndex * RadGrid.PageSize
        Dim pageSize As Integer = RadGrid.PageSize
 
 
        RadGrid.DataSource = GetDatas(startIndex, pageSize, RadGrid.MasterTableView.FilterExpression)
 
    End Sub
 
    Private Function GetDatas(ByVal startIndex As Integer, ByVal pageSize As Integer, ByVal FilterExpression As String) As DataTable
 
        ' ------------
        ' Some Code that generates a datatable considering both CustomPaging and Filtering
        ' ------------
 
        Return New DataTable
 
    End Function
 
    Private Function GetDatasVirtualItemsCount(ByVal FilterExpression As String) As Integer
 
        ' ------------
        ' Some Code that count the number of rows considering Filtering
        ' ------------
 
        Return -1
 
    End Function
 
End Class

The only thing changed is the approach in retrieving the startIndex and the pageSize that now works the same way either if I'm filtering or not.

My point is: this thing seems to work, but I have to deliver it very soon and since I have not found posts of this approach anywhere I'm wondering if I'm missing something important that this approach does not consider.

If anybody finds reasonable reasons why this should fail in some circumstances please let me know.  

Thanks in advance.

Lorenzo
Tsvetina
Telerik team
 answered on 01 Aug 2012
3 answers
364 views
Hello,

I'd like to keep colors of my radgrid's rows on my Excel file. When I execute my export, Excel displays an loading issue of file ("Table" is the cause of error).
Can you help me to resolve this problem, please !

Here my source code :

transaction.aspx :
...
<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" GridLines="None"
        AllowFilteringByColumn="True" AllowSorting="True" Skin="Windows7" OnItemDataBound="RadGrid1_ItemDataBound"
        OnSelectedIndexChanged="RadGrid1_SelectedIndexChanged" 
        DataSourceID="odsTransactionsValidees" onprerender="RadGrid1_PreRender"
        OnExcelMLExportStylesCreated="RadGrid1_ExcelMLExportStylesCreated" 
        onexcelmlexportrowcreated="RadGrid1_ExcelMLExportRowCreated">
...
<ExportSettings OpenInNewWindow="True" ExportOnlyData="True" FileName="ExportValidees"
            IgnorePaging="true" Excel-Format="ExcelML"  />
....
 <MasterTableView DataSourceID="odsTransactionsValidees" AutoGenerateColumns="False"
            NoMasterRecordsText="Pas de transactions." Font-Size="Medium"  UseAllDataFields="true" DataKeyNames="ID_TRANSACTION,DOUTE_CLASSIFICATION"
            OverrideDataSourceControlSorting="true" AllowNaturalSort="true" CommandItemDisplay="Bottom">
            <CommandItemSettings ExportToExcelText="Export Excel" ShowExportToExcelButton="False"
                ShowAddNewRecordButton="False" ShowRefreshButton="False" />
....
</telerik:RadGrid>
....
transactions.aspx.cs :

protected void RadGrid1_ExcelMLExportStylesCreated(object source, GridExportExcelMLStyleCreatedArgs e)
        {
            // ajoute les bordures de cellule
            BorderStylesCollection borders = new BorderStylesCollection();
            BorderStyles borderStyle = null;
 
            for (int i = 1; i <= 4; i++)
            {
                borderStyle = new BorderStyles();
                borderStyle.PositionType = (PositionType)i;
                borderStyle.Color = System.Drawing.Color.Black;
                borderStyle.LineStyle = LineStyle.Continuous;
                borderStyle.Weight = 1.0;
                borders.Add(borderStyle);
            }
            foreach (StyleElement style in e.Styles)
            {
                foreach (BorderStyles border in borders)
                {
                    style.Borders.Add(border);
                }
            }
           
            StyleElement style1 = new StyleElement("MyStyleWhite");
 
            style1.InteriorStyle.Pattern = InteriorPatternType.Solid;
            style1.InteriorStyle.Color = System.Drawing.Color.White;
            e.Styles.Add(style1);
 
            StyleElement style2 = new StyleElement("MyStyleOrange");
            style2.InteriorStyle.Pattern = InteriorPatternType.Solid;
            style2.InteriorStyle.Color = System.Drawing.Color.Orange;
            e.Styles.Add(style2);
 
}

protected void RadGrid1_ExcelMLExportRowCreated(object sender, GridExportExcelMLRowCreatedArgs e)
{
            string typeTransaction = hidType.Value;
 
            if (e.RowType == GridExportExcelMLRowType.DataRow)
            {
                if (typeTransaction == TypeTransactionValide || typeTransaction == TypeTransactionValideReseau)
                {
                    string style;
                    foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
                    {
                        string color = item.BackColor.ToString();
                        if (!(bool)item.GetDataKeyValue("DOUTE_CLASSIFICATION"))
                        {
                            style = "myStyleWhite";
                        }
                        else
                        {
                            style = "myStyleOrange";
                        }
                        foreach (CellElement cellElement in e.Row.Cells)
                        {
                            cellElement.StyleValue = style;
                        }
                    }
 
                }
            }    
}


Best Regards
CLAUDE LLOP
Top achievements
Rank 1
 answered on 01 Aug 2012
3 answers
89 views
I'm working with a multilingual application and have problems of localizing the label property. According to the provider of the translation software (jollans.com), the problem is that the label-property has localizable(false), while the text-property has localizable(true), which works. How can i solve this, so the label property can be localizable as well?

Thanks!
Vasil
Telerik team
 answered on 01 Aug 2012
1 answer
117 views
Hello,

I am trying to have the filter-Boxes of a RadGrid resize with the columns of the Grid using a .css (.rgFilterBox). This works great with the width of the Box itself (which I have set to 99%), but of course the large box makes the icon of the filter-dialogue disappear. It tried to set a margin-right of 30px to have the icon shown anyway, but for some reason that doesn't work (although margin-left, -bottom and -top work just fine). Setting margin: 30px in the .css also creates 30px of space on the top, bottom and left side of the box, but not on it's right side.
Any suggestions on fixing this behaviour would be of great help.

Thanks in advance,
Robin
Eyup
Telerik team
 answered on 01 Aug 2012
14 answers
841 views

Hi,

Im using Prometheus Rad grid . i try to group the grid by three fields.

first two fields are gridboundcolumn and i have given them within the groupby expression and another field is template field. I enabled the grouping for this template field as per help document.

Below is the Code,

<

telerik:RadGrid ID="RadGrid1" runat="server" Skin="Office2007" SkinsOverrideStyles="false"AutoGenerateColumns="false" BorderWidth="1px" BorderStyle="Solid" BorderColor="ActiveBorder">

<ClientSettings AllowGroupExpandCollapse="true">

</ClientSettings>

<MasterTableView GroupLoadMode ="Client" >

<GroupByExpressions>

<telerik:GridGroupByExpression>

<SelectFields>

<telerik:GridGroupByField HeaderText=" " FieldName="Status" FormatString="{0:D}"

HeaderValueSeparator=" "></telerik:GridGroupByField>

</SelectFields>

<GroupByFields>

<telerik:GridGroupByField FieldName="Status" ></telerik:GridGroupByField>

</GroupByFields>

</telerik:GridGroupByExpression>

<telerik:GridGroupByExpression>

<SelectFields>

 <telerik:GridGroupByField HeaderText=" " FieldName="TSACode" FormatString="{0:D}"

 HeaderValueSeparator=" "></telerik:GridGroupByField>

 </SelectFields>

 <GroupByFields>

 <telerik:GridGroupByField FieldName="TSACode" SortOrder="Ascending"></telerik:GridGroupByField>

 </GroupByFields>

 </telerik:GridGroupByExpression>

</GroupByExpressions>

<Columns>

<telerik:GridBoundColumn Visible="false" HeaderText="Status" DataField="Status" UniqueName="Status"></telerik:GridBoundColumn>

<telerik:GridBoundColumn Visible="false" HeaderText="TSA" DataField="TSACode" UniqueName="TSACode"> </telerik:GridBoundColumn>

<telerik:GridBoundColumn Visible="false" HeaderText="PubId" DataField="PubId" UniqueName="PubId"></telerik:GridBoundColumn>

<telerik:GridTemplateColumn Groupable="true" GroupByExpression="Title GROUP BY Title"

ItemStyle-Width="60%" HeaderText="Title" UniqueName="Title">

<ItemTemplate>

<asp:HyperLink ID="hypLnk" CssClass="HyperLink" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Title") %>'

ToolTip="Publication Info" Target="_blank">

</asp:HyperLink>

</ItemTemplate>

</telerik:GridTemplateColumn>

<telerik:GridBoundColumn  HeaderText="Country" DataField="CountryCode" UniqueName="CountryCode">

</telerik:GridBoundColumn>

</

Columns>

</MasterTableView>

</telerik:RadGrid>

Actual Result : Grid is grouped according to the two fields mentioned in the group by expression. group is missing for "Title" template column. Im getting Title and country as dataitems

Expected Result: Would like to group the grid according to status,TSACode,Title with hyperlink and country should be dataitem inside the groups...

Thanks,
Mey

Shinu
Top achievements
Rank 2
 answered on 01 Aug 2012
0 answers
49 views
Hi,

How to insert data into SQL database and display it in radgrid at client side .

As I'm new to script and telerik , pls provide sample code for the following scenario

1) A dropdown with ProductName as text, and Product id as value
2) A Qty textbox.
3) A Radbutton (ADD ). When the user select the products, & enter the qty. and by clicking the ADD the data has to be update on the grid / or on the sql database.

Pls provide sample code

ProductID numeric
ProductName nvarchar(50)
Qty numeric

SAFAA
Top achievements
Rank 1
 asked on 31 Jul 2012
3 answers
68 views
Hi, I am having problems with getting page sizes reasonable and I would love some input from experienced developers.

Just as an example, I converted an old asp page which displayed data pulled from a database in a small table. The table, plus a static menu, came to 32,455 bytes.

Now I have converted the identical data, but using RadMenu and RadDatagrid. The pages look and function nearly identically (Ok, the rad page looks better) but the size is now 435,873 bytes. That's more than a 10 fold increase in size to make things look prettier. Am I missing something here? Many of my clients are in third world countries and don't have hi speed internet connections. I really need to keep my pages below 200,000 bytes.

Some of the more complex pages using Rad controls are approaching 1 MB, and I don't have pictures on them.

Is there a way of reducing the page size?

I can't seem to find a way to cache the radMenu, which appears on every page (it is in the MasterPage). Because the MasterPage is merged with the other content each time then it is not cached on the client side, so it takes seconds to load each time.

Has anyone found a way to cache the navigation menus (RadMenu)? I guess if I used frames (god forbid going back to ancient history) then I could cache the RadMenu.

I would really appreciate some tips and thoughts from those developing real applications that need to perform.

Do people think that a 500,000 bytes + size page is fine? Am I too old school?

Cheers

Ian.
Ian
Top achievements
Rank 1
 answered on 31 Jul 2012
0 answers
101 views
Hi all:

I have a custom control inside Sitefinity that implements the RadScheduler.  When the page loads, it shows correctly, but when I try to change the selected date, I get this error:

Server Error in '/SiteFinity' Application. DataKeyField, DataSubjectField, DataStartField and DataEndField are required for databinding

This properties are setted in the code behind.  This is the code I used:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Calendar.ascx.cs" Inherits="SitefinityWebApp.Controls.Calendar" %>
 
<telerik:RadScheduler ID="rsCalendar" runat="server" Skin="Office2007" ReadOnly="True"
                        SelectedView="MonthView" MonthView-VisibleAppointmentsPerDay="15"
                        OverflowBehavior="Expand" CustomAttributeNames="Link"
                        RowHeight="35px">
    <TimelineView UserSelectable="false" />
    <WeekView UserSelectable="false" />
    <DayView UserSelectable="false" />
    <AdvancedForm DateFormat="M/d/yyyy" TimeFormat="h:mm tt" />
    <AppointmentTemplate>   
        <a href='<%#Eval("Link") %>'><%#Eval("Subject")%></a>                   
        <%--<a href='CourseDescription.aspx?cid=<%#Eval("ID") %>'><%#Eval("Subject")%></a>--%>
    </AppointmentTemplate>
    <monthview visibleappointmentsperday="15" AdaptiveRowHeight="True" />
</telerik:RadScheduler>

And the code behind is 

protected void Page_Load(object sender, EventArgs e)
        {
            //if (!IsPostBack)
            //{
                FillCalendar(DateTime.Now);
            //}
        }
 
        protected void rsCalendar_NavigationComplete(object sender, SchedulerNavigationCompleteEventArgs e)
        {
            FillCalendar(rsCalendar.SelectedDate);
        }
        /// <summary>
        /// Fills the calendar with the info
        /// </summary>
        private void FillCalendar(DateTime selDate)
        {
            List<CoursesByDate> cal = dbContext.GetCoursesByDate(selDate).ToList();
 
            rsCalendar.DataSource = cal;
            rsCalendar.DataKeyField = "CourseCode";
            rsCalendar.DataSubjectField = "Course_Description";
            rsCalendar.DataStartField = "Begin_Date";
            rsCalendar.DataEndField = "End_Date";
            rsCalendar.DataBind();
        }

What's wrong?
Eliana
Top achievements
Rank 1
 asked on 31 Jul 2012
2 answers
40 views
HI,

I need to display confirm box (With option ok/cancel) when user clicks on Cancel button inside an edit or insert form.
We are adding edit button in the grid as following :

<

 

 

telerik:GridButtonColumn UniqueName="btnEdit" CommandName="Edit" Text="Edit" ButtonType="PushButton"

 

 

 

Visible="false">

We tried using oncommand and writing some javascript code but that is not an option.
It interferes with required field validators.

The cancel button is autogenerated and we are not writing any code for it.

Please suggest something as it is an urgent requirement.

 

Prachi
Top achievements
Rank 1
 answered on 31 Jul 2012
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?