Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
428 views
I have some custom logic that grabs a single page worth of data before setting the datasource of my RadGrid. I set the MasterTableView.VirtualItemCount. However, upon load of the page, It is telling me that I have 4 items in 1 page, thereby not giving me access to further pages. Here is my code:

ASP
<telerik:RadGrid AllowPaging="true"
                AllowSorting="true"
                AutoGenerateColumns="false"
                GridLines="None"
                ID="LoginAuditGrid"
                OnNeedDataSource="LoginAuditGrid_NeedDataSource"
                PageSize="4"
                PagerStyle-AlwaysVisible="true"
                ShowFooter="false"
                ShowGroupPanel="true"
                Skin="Hay"
                runat="server">


                <ClientSettings AllowDragToGroup="true" />
                <GroupingSettings ShowUnGroupButton="true" />


                <MasterTableView AllowMultiColumnSorting="true"
                    AllowSorting="true"
                    CommandItemDisplay="Top"
                    EnableColumnsViewState="false"
                    Font-Size="8">
                    <Columns>
                        <telerik:GridBoundColumn DataField="ApplicationName" DataType="System.String" HeaderText="Application Name" UniqueName="ApplicationID" />
                        <telerik:GridBoundColumn DataField="Username" DataType="System.String" HeaderText="Username" UniqueName="Username" />
                        <telerik:GridBoundColumn DataField="IPAddress" DataType="System.String" HeaderText="IP Address" UniqueName="ApplicationID" />
                        <telerik:GridBoundColumn DataField="LoginAuditDT" DataType="System.DateTime" HeaderText="Login Time" UniqueName="LoginAuditDT" />
                        <telerik:GridBoundColumn DataField="LoginAuditStatus" DataType="System.String" HeaderText="Login Audit Status" UniqueName="LoginAuditReasonID" />
                        <telerik:GridBoundColumn DataField="SecurityUserID" DataType="System.Int32" HeaderText="Security User ID" UniqueName="SecurityUserID" />
                    </Columns>
                    <CommandItemSettings ShowExportToExcelButton="false" ShowAddNewRecordButton="false" />
                </MasterTableView>
            </telerik:RadGrid>

Code Behind
protected void LoginAuditGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
        {
    //This method defines a set of criteria to filter my data on
            BaseSearch criteria = new BaseSearch(SavedSearch);

            List<LoginAuditDetail> data = ServiceProxy.GetService<IAdminService>().FetchLoginAudit(criteria);

            LoginAuditGrid.MasterTableView.VirtualItemCount = ServiceProxy.GetService<IAdminService().FetchLoginAuditCount(criteria);
            LoginAuditGrid.DataSource = data;
        }
Shinu
Top achievements
Rank 2
 answered on 21 Nov 2012
4 answers
304 views
Hi
how can i show only date instead of datetime in excel sheet while exporting into excel.

i,e i have a column  datatime column in grid while i am  exporting data into a excel using exporttoexcel command , it is showing date with time but i just wanted to show only date(dd/MM/yyyy) format in excel sheet.

Note: i have set the format of exportsetting of excel to "ExcelML"

it's very urgent..
waiting for quick reply..


Thanks
Santosh
San
Top achievements
Rank 1
 answered on 21 Nov 2012
1 answer
144 views
Hello! I am using Telerik ASP.NET controls to develop a WebApplication in C#, What I need is to show some data in a Grid, so I selected RadGrid to do it.
In my firt test, I just have a textbox with a button, so when you click on it, the text on the textbox is added to a global list, and this list is copied to a local list and added as DataSource:

public static List<string> gl = new List<string>(); //Global list to store all the elements
protected void RadButton3_Click(object sender, EventArgs e)
    {
        string txt = RadTextBox1.Text;
        UpdateGrid(txt);      
    }
 
public void UpdateGrid(string elem) //Procedure to update the grid contents
    {
        gl.Add(elem);
        List<string> l = new List<string>(); //Local list to set it as DataSource for the grid, so I don't get the exception
        l.AddRange(gl);
        RadGrid1.DataSource = l;
        RadGrid1.DataBind();
    }

I tested it and all worked fine, the problem is that the elements that I have to add to the grid are not those from the textbox, but they come from a WCF Duplex Service. So I add the Service Reference and create the client object to invoke the Service functions. As it is a Duplex Service, the client must implement Callback interface with the function that will be executed when the service returns a value.

I added a new button, to call the service, the Callback class, and a static class "UIGlobal" so I could access to the UpdateGrid method from this Callback class and pass the value I want to add to the grid:

public partial class Default : System.Web.UI.Page
{
    public static List<string> gl = new List<string>();
    protected void Page_Load(object sender, EventArgs e)
    {
        UIGlobal.MainPage = this; //Initialize the attribute of UIGlobal to get the reference os this page to access the UpdateGrid method
    }
 
    protected void RadButton3_Click(object sender, EventArgs e) //Same as before
    {
        string txt = RadTextBox1.Text;
        UpdateGrid(txt);      
    }
 
    public void UpdateGrid(string elem) //The method that updates the grid
    {
        gl.Add(elem);
        List<string> l = new List<string>();
        l.AddRange(gl);
        RadGrid1.DataSource = l;
        RadGrid1.DataBind();
    }
 
    protected void RadButton2_Click(object sender, EventArgs e) //Method that calls the WCF Duplex Service
    {
        InstanceContext instanceContext = new InstanceContext(new CallbackHandler());
        PubSubClient ps_service = new PubSubClient(instanceContext); //Create the object required to call the service
 
        List<string> tops = new List<string>();
        tops.Add("realtime.db.analog.0analog.description");
        ps_service.subscribe_Integrity(tops); //Call the service function
    }
}
 
public class CallbackHandler : IPubSubCallback //This is the Callback class
{
    public void Send(Change c) //When the service sends a value to the client, this function is executed
    {
        UIGlobal.MainPage.UpdateGrid(c.value); //Execute the UpdateGrid method with the value that the service sends back
    }
}
 
public class UIGlobal //This is the class used to access to the page
{
    public static Default MainPage { get; set; } //Reference to the page, initialized  in the Page_Load method
}

When I execute it, everything seems to work fine, there are not exceptions thrown and I can see how the Send function is executed, it calls the UpdateGrid with the right value, and this function execute all the instructions, but the new value is not added to the grid, so I don't know what is happening, I don't know if it is because the function is being called from the UIGloblal Reference.
I can send you my proyect with both the asp.net client and the duplex service if you want.

Hope somebody can help me. Thanks!!


Andrey
Telerik team
 answered on 21 Nov 2012
1 answer
102 views
Hi,
I am using SelfHierarchy within my RadGrid and would like to add Caption to my MasterTableView. When I set the caption like;
<MasterTableView HierarchyDefaultExpanded="false" HierarchyLoadMode="Client" AllowSorting="false"
 DataKeyNames="RowOrder, ParentId" Caption="Caption Goes Here">
The caption is added to each details table as-well. Screen-shot is attached to see the behavior. I would like to hide caption for the details tables. How can I achieve this?

TIA.
Shinu
Top achievements
Rank 2
 answered on 21 Nov 2012
5 answers
516 views
Hello,

The scenario:
  • AutoGenerateColumns is set to true
  • I attach a DataTable during NeedDataSource
  • At some point before the page load, I'm trying to hide one of columns if a certain condition is true.

The problem:
No matter which event I try, RadGrid1.MasterTableView.Columns is always empty.

I've tried just about every event: NeedDataSource, OnItemCreated, oncolumncreated, oncolumnsreorder, ondatabound, onprerender, Page.PreRender. At no time is the Columns property populated with columns.

I suppose I could create the columns programmatically from the DataTable but I'd rather let RadGrid do it for me if possible.

Any advice is greatly appreciated.

Thanks,
Jeff
Peter
Top achievements
Rank 1
 answered on 21 Nov 2012
3 answers
631 views
Hi..
i am binding grid through data table through chart serious click event and set autogeneratecolumns="true" in grid at aspx page and also i didn't apply any code 'gridbound colum & gridtemplate column' like that based on datatable column and rows grid will be generated.
when i click first time in chart serious grid will be generated correctly but second time grid style will be changed in column header and overall structure.. what i want to do be grid same every time i execute this.
and my coding are mentioned below kindly guide me to solve this..

aspx code is

<telerik:RadGrid id="radgrid1" ruunat="server" autogeneratecolumn="true">
<headerstyle horizantalalign="left"/>
</telerik:RadGrid>

aspx.cs code is

DataTable table1=getdata();
radgrid1.datasource=table1;
radgrid1.databound();


thanks in advance..!
Jayesh Goyani
Top achievements
Rank 2
 answered on 21 Nov 2012
13 answers
494 views
Hi

How do I show gridlines even if cell is empty. I want to make this fix in all places. Is there any general code for this issue?

I have the radgrid structure like below

<

 

netcweb:NCRadGrid runat="server" ID="ActivityGrid"

 

 

OnNeedDataSource="ActivityGrid_NeedDataSource"

 

 

OnItemCreated="ActivityGrid_OnItemCreated"

 

 

PageSize="10" AllowPaging="true" SkinID="ActivityList"

 

 

OnPageSizeChanged="ActivityGrid_PageSizeChanged" OnPreRender="ActivityGrid_PreRender">

 

 

<PagerStyle AlwaysVisible="true" />

 

 

<ClientSettings AllowGroupExpandCollapse="true" />

 

 

<GroupingSettings />

 

 

<MasterTableView AutoGenerateColumns="false" GroupLoadMode="client">

 

 

<Columns>

 

 

<telerik:GridTemplateColumn UniqueName="1" HeaderText="My courses student page">

 

 

<ItemTemplate>

 

 

<netcweb:PlaceHolderControl runat="server" ID="column1PlaceHolder">

 

 

</netcweb:PlaceHolderControl>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

<telerik:GridTemplateColumn UniqueName="2" HeaderText="StudentCourseListStatusHeader">

 

 

<ItemTemplate>

 

 

<netcweb:PlaceHolderControl runat="server" ID="column2PlaceHolder">

 

 

</netcweb:PlaceHolderControl>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

<telerik:GridTemplateColumn UniqueName="3" HeaderText="StudentCourseListDateHeader">

 

 

<ItemTemplate>

 

 

<netcweb:PlaceHolderControl runat="server" ID="column3PlaceHolder">

 

 

</netcweb:PlaceHolderControl>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

<telerik:GridTemplateColumn UniqueName="4" HeaderText="">

 

 

<HeaderTemplate>

 

 

<netcweb:ImageCheckBoxControl runat="server" ID="DetailedListCheckBox"

 

 

OnCheckedChanged="DetailedListCheckBox_OnCheckedChanged" AutoPostBack="true"

 

 

SkinID="DetailedView" />

 

 

</HeaderTemplate>

 

 

<ItemTemplate>

 

 

<netcweb:PlaceHolderControl runat="server" ID="column4PlaceHolder">

 

 

</netcweb:PlaceHolderControl>

 

 

</ItemTemplate>

 

 

</telerik:GridTemplateColumn>

 

 

</Columns>

 

 

</MasterTableView>

 

 

</netcweb:NCRadGrid>

I tried the below code. All the values reside that grid was returns empty.

 

 

protected void ActivityGrid_PreRender(object sender, EventArgs e)

 

{

 

foreach (GridDataItem dataItem in ActivityGrid.MasterTableView.DetailTables[0].Items)

 

{

 

foreach (GridColumn col in ActivityGrid.MasterTableView.DetailTables[0].Columns)

 

{

 

if (dataItem[col.UniqueName].Text == string.Empty)

 

dataItem[col.UniqueName].Text =

"&nbsp;";

 

}

}

 

}

 


 

 

Luke
Top achievements
Rank 2
 answered on 21 Nov 2012
0 answers
98 views
Hi, 
I have a RadTreeView inside a RadAjaxPanel, and I drag&drop items onto another RadTreeView, or a RadPane. What i have done is instead of subscribing to the server side OnNodeDrop, capture the OnClientNodeDropping of the treeView, and then make an ajax call through ajaxPanel.ajaxRequest. 

It seems that the when I am sending the ajax calls from the treeview with my ajaxPanel.ajaxRequest, they travel through a different ajax channel, because, first of all, the loading panel doesn't show, and also only the other treeView on the page refreshes. The server does receive the call, though. If the drop is on the RadPane, or any other html element for that matter, no refresh happens at all. 

Now, here's the interesting part. I have another treeview with a similar functionality which works just fine. I started making the two treeViews look each other by eliminating the differences, and found out that if I set the OnNodeExpand event handler for the treeView, this issue arises, and if I remove that, everything works alright. 

In a nutshell, if the OnNodeExpand event handler is added to the treeview, ajax calls that are initiated from the treeView and go through ajaxPanel or ajaxManager, do reach the server, but do not refresh the intended controls on return. The only exception seems to be other treeViews on the page, which are refreshed correctly, but without showing the LoadingPanel. 

I hope this is not too confusing. 

Thanks
Safa

Safa
Top achievements
Rank 1
 asked on 20 Nov 2012
8 answers
1.1K+ views
In case where RadEditor is initially hidden and displayed using AJAX is causing the editor to render with incorrect width on the first show. This scenario applies for RadGrid edit template, RadEditor inside a RadPageView, etc.
This problem occurs due to the fact that RadEditor CSS files are not fully loaded when the editor calculates its’ toolbar size.
To avoid this problem you need to register the RadEditor’s CSS files manually on the page:

Since Q2 2011 you need to use the Telerik.Web.SkinRegistrar.GetWebResourceUrl() method:
<head id="Head1" runat="server">
    <title></title>
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <link href='<%= Telerik.Web.SkinRegistrar.GetWebResourceUrl(this, typeof(RadEditor), "Telerik.Web.UI.Skins.Editor.css") %>'
            rel="stylesheet" type="text/css" />
        <link href='<%= Telerik.Web.SkinRegistrar.GetWebResourceUrl(this, typeof(RadEditor), "Telerik.Web.UI.Skins.Default.Editor.Default.css") %>'
            rel="stylesheet" type="text/css" />
        <link href='<%= Telerik.Web.SkinRegistrar.GetWebResourceUrl(this, typeof(RadWindow), "Telerik.Web.UI.Skins.Window.css") %>'
            rel="stylesheet" type="text/css" />
        <link href='<%= Telerik.Web.SkinRegistrar.GetWebResourceUrl(this, typeof(RadWindow), "Telerik.Web.UI.Skins.Default.Window.Default.css") %>'
            rel="stylesheet" type="text/css" />
    </telerik:RadCodeBlock>
</head>

If you are using VB you should, of course, replace the this keyword with Me as this is its VB counterpart.


If you are using an older version you can still use ClientScript.GetWebResourceUrl():

<head id="Head1" runat="server">
    <title></title>
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <link href='<%= Page.ClientScript.GetWebResourceUrl(typeof(RadEditor), "Telerik.Web.UI.Skins.Editor.css") %>'
            rel="stylesheet" type="text/css" />
        <link href='<%= Page.ClientScript.GetWebResourceUrl(typeof(RadEditor), "Telerik.Web.UI.Skins.Default.Editor.Default.css") %>'
            rel="stylesheet" type="text/css" />
        <link href='<%= Page.ClientScript.GetWebResourceUrl(typeof(RadWindow), "Telerik.Web.UI.Skins.Window.css") %>'
            rel="stylesheet" type="text/css" />
        <link href='<%= Page.ClientScript.GetWebResourceUrl(typeof(RadWindow), "Telerik.Web.UI.Skins.Default.Window.Default.css") %>'
            rel="stylesheet" type="text/css" />
    </telerik:RadCodeBlock>
</head>
....................
    <telerik:RadEditor runat="server" ID="RadEditor1" Skin="Default" EnableEmbeddedSkins="false" EnableEmbeddedBaseStylesheet="false">
    </telerik:RadEditor>
Moon
Top achievements
Rank 2
 answered on 20 Nov 2012
2 answers
117 views
Hello, everyone.

I have a question regarding the timing and functionality of a RadButton inside a GridButtonColumn.

I have a RadGrid that's getting its data from SQL.  In the GridButtonColumn is a PushButton that has its button text set from a field in the database.  Since these buttons will do different things based on their text, I'd like to know if it's possible to dynamically assign the CommandName property.  I've noticed that I can't use things like CommandName='<%# DataBinder.Eval(Container, "DataItem.buttonCmd") %>' like I can with GridBoundColumns.  Is there another way I can do this?
Kevin
Top achievements
Rank 2
 answered on 20 Nov 2012
Narrow your results
Selected tags
Tags
+? more
Top users last month
Boardy
Top achievements
Rank 2
Veteran
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
ivory
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ClausDC
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Boardy
Top achievements
Rank 2
Veteran
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
ivory
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ClausDC
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?