Telerik Forums
UI for ASP.NET AJAX Forum
2 answers
89 views
I'm using the documentation and online source to try and build my own CustomDBProvider and CustomContentProvider.  I'm running into some issues and was hoping to get some help.  My goal is to have some "top-level" folders which will dynamically query a third-party system (via a COM SDK) and display folders and/or documents.  One of the top-level folders might be called "My Documents" and should only show documents.  Another might be called "My folders" and could show folders (which might in-turn have sub-folders).  Another example would be "My Labels" which might contain either documents or folders.  I"m using some static pathing so that I know how to execute different commands in the third party system.  I can't use DataTables because I need to load the information on-demand.  

For now I just want things to be displayed in the UI.  I've made everything read-only.  I'm not worried about uploading at this point.

I've gotten the "My Documents" to work perfectly.  But I can't get "My Containers" to work.  It executes the code and loads the directories into the function, but nothing gets displayed.  Any help would be greatly appreciated!



public override DirectoryItem ResolveRootDirectoryAsTree(string path)
{
    DirectoryItem directory = null;
    if (path.Equals("ROOT/TE"))
    {
        directory = new DirectoryItem("File Explorer", "ROOT/TE", "ROOT/TE", "ROOT/TE", PathPermissions.Read, null, null);
        List<DirectoryItem> subDirs = new List<DirectoryItem>();
        subDirs.Add(new DirectoryItem("My Labels", string.Empty, "ROOT/TE/TL-1", "TL-1", PathPermissions.Read, null, null));
        subDirs.Add(new DirectoryItem("Recent Documents", string.Empty, "ROOT/TE/TL-2", "TL-2", PathPermissions.Read, null, null));
        subDirs.Add(new DirectoryItem("Recent Folders", string.Empty, "ROOT/TE/TL-3", "TL-3", PathPermissions.Read, null, null));
        directory.Directories = subDirs.ToArray();
        if (directory.Directories != null)
        {
 
            foreach (DirectoryItem dir in directory.Directories)
            {
                dir.Permissions = GetPermissions(path);
            }
        }
        return directory;
    } else {
        return directory;
    }
}

public override DirectoryItem ResolveDirectory(string path)
{
    DirectoryItem directory = dataServer.GetDirectoryItem(path, true, true);
    if (directory == null) return null;
    return directory;
}

public DirectoryItem GetDirectoryItem(string path, bool bIncludeSubfolders, bool bIncludeFiles)
{
    DirectoryItem diDirectory = null;
    MyObject item = this.GetObjectFromPath(path);
    if (item != null )
    {
        if (item.sType.Equals("TL"))
        {
            diDirectory = LoadSubNode(item, path, bIncludeSubfolders, bIncludeFiles);
        }
        else if (item.sType.Equals("C"))
        {
            //diDirectory = CreateDirectoryItem(item, true);
        }
        else if (item.sType.Equals("FP"))
        {
            //diDirectory = CreateDirectoryItem(item, true);
        }
        else if (item.sType.Equals("UL"))
        {
            //diDirectory = CreateDirectoryItem(item, true);
        }
    }
    return diDirectory;
    //return (item != null && item.sType.Equals("C")) ? this.CreateDirectoryItem(item, includeSubfolders) : null;
}
 
private DirectoryItem LoadSubNode(MyObject ktoItem, string sPath, bool bIncludeSubFolders, bool bIncludeFiles) {
    DirectoryItem diDirectory = null;
    if (ktoItem.sUri.Equals("2"))
    {
        diDirectory = GetTopLevel_RecentDocuments(sPath, bIncludeFiles);
    }
    else if (ktoItem.sUri.Equals("3"))
    {
        diDirectory = GetTopLevel_RecentContainers(sPath, bIncludeSubFolders, bIncludeFiles);
    }
    return diDirectory;
}
 
 
private DirectoryItem GetTopLevel_RecentDocuments(string sPath, bool bIncludeFiles) {
    DirectoryItem diDirectory = new DirectoryItem("Recent Documents", sPath, sPath, "TL-2", PathPermissions.Read, null, null);
    if (bIncludeFiles)
    {
        diDirectory.Files = LoadRecentDocuments(sPath);
    }
    return diDirectory;
}
private DirectoryItem GetTopLevel_RecentContainers(string sPath, bool bIncludeSubFolders, bool bIncludeFiles)
{
    DirectoryItem diDirectory = null;
    diDirectory = new DirectoryItem("Recent Containers", sPath, sPath, "TL-3", PathPermissions.Read, null, null);
    SomeSDK.Records tRecords = tDatabase.MakeRecords();
    tRecords.SearchString = "myContainers";
    SomeSDK.Record tRecord = null;
    List<DirectoryItem> diFolders = new List<DirectoryItem>();
    while ((tRecord = tRecords.Next()) != null)
    {
        string sItemPath = GetValidPath(sPath) + "C-" + tRecord.Uri.ToString();
        DirectoryItem diSubItem = new DirectoryItem(tRecord.Title + " (" + tRecord.Number + ")", sItemPath, sItemPath, sItemPath, PathPermissions.Read, null, null);
        diSubItem.Files = (new List<FileItem>()).ToArray();
        diSubItem.Directories = (new List<DirectoryItem>()).ToArray();
        //diFolders.Add(new DirectoryItem(tRecord.Title + " (" + tRecord.Number + ")", sItemPath, sItemPath, sItemPath, PathPermissions.Read, null, null));
        diFolders.Add(diSubItem);
        //diFolders.Add(new DirectoryItem("test", string.Empty, sPath + "/1", "1", PathPermissions.Read, null, null));
    }
    diDirectory.Directories = diFolders.ToArray();
    List<FileItem> fiDocuments = new List<FileItem>();
    diDirectory.Files = fiDocuments.ToArray();
    return diDirectory;
}
 
private FileItem[] LoadRecentDocuments(string sPath)
{
    SomeSDK.Records tRecords = tDatabase.MakeRecords();
    tRecords.SearchString = "myDocuments";
    SomeSDK.Record tRecord = null;
    List<FileItem> fiDocuments = new List<FileItem>();
    while ((tRecord = tRecords.Next()) != null)
    {
        string sItemPath = GetValidPath(sPath) + "D-" + tRecord.Uri.ToString();
        fiDocuments.Add(new FileItem(tRecord.Title + " (" + tRecord.Number + ")", tRecord.Extension, tRecord.DocumentSize, sItemPath, sItemPath, tRecord.Number, PathPermissions.Read));
    }
    return fiDocuments.ToArray();
}
private string GetValidPath(string sInputPath)
{
    if (!sInputPath.EndsWith("/"))
    {
        return sInputPath + "/";
    }
    else
    {
        return sInputPath;
    }
}
Vessy
Telerik team
 answered on 23 Nov 2012
13 answers
147 views
Hi All

I've just noticed this , (been messing around with the app and didn't notice when this happened)
I have RagGrids with a COmmandName = Delete. This I think is a build in command.

The icon doesn't show for this. If I change the command name to a diffferent name other than the built in one (DeleteZ) the icon shows.

Also all the icons have disappeared from the reporting module too.

Andy Ideas.

Andy
Andy Green
Top achievements
Rank 2
 answered on 23 Nov 2012
1 answer
97 views
Hi there,
     How do I highlight todays date in grid date filter. thanks for the help
Savyo
Shinu
Top achievements
Rank 2
 answered on 23 Nov 2012
1 answer
79 views
Hi
How can I hide the undobutton in the radspell dialog box. Thanks

Allen
Princy
Top achievements
Rank 2
 answered on 23 Nov 2012
3 answers
171 views
I'm using a RadColorPicker replacing the standard ForeColor tool in RadEditor.

 

 

<script type="text/javascript">

 

RadEditorCommandList[

 

 try

 

if (editor.getSelectionHtml() != "") {  

 

     var style = editor.get_contentArea().style;
    style.color = oTool.value; 

    if (ajaxManager == null

            ajaxManager = $find("<%= RadAjaxManager1.ClientID %>");

  

    if (ajaxManager != null)

             ajaxManager.ajaxRequest(commandName);

    }

 

else

    alert("Please, select some text!");  

    args.set_cancel(true);  

    }

catch (err)

{ }

}

 

 

Rumen
Telerik team
 answered on 23 Nov 2012
1 answer
146 views
How to hide lines and change expand icon of treeview?
Shinu
Top achievements
Rank 2
 answered on 23 Nov 2012
1 answer
63 views

Hi,

I am trying to get the telerik hierachy grid to work. I got the grid row to show up when the grid is loaded. When I click on the arrow to expand the first row, the row expands. I see the two tab page and the first tab grid data is loaded. However when I click on the 2nd tab, nothing happens. when I clicked the 2nd or 3rd row, it is not expand. It just display a blank line.

 Any help is greatly appreciated.

JC

<

 

 

telerik:RadGrid ID="rgdSubmitterMatrix" runat="server" AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="odsSubmitterNotice" GridLines="None" OnItemDataBound="rgdSubmitterMatrix_ItemDataBound" OnPreRender="Page_Load" ShowGroupPanel="True" Skin="Outlook" >

<PagerStyle Mode="NumericPages" />

 

<mastertableview allowmulticolumnsorting="True" datasourceid="odsSubmitterNotice" GroupLoadMode="server">

 <NestedViewTemplate>

<asp:Panel runat="server" ID="InnerContainer" CssClass="viewWrap" Visible="false">

<telerik:RadTabStrip runat="server" ID="rtsSubmitterMatrix" MultiPageID="rmpSubmitterMatrix" SelectedIndex="0">

<Tabs>

<telerik:RadTab runat="server" Text="Submitter Response" PageViewID="rpvSubmitterResponse">

</telerik:RadTab>

<telerik:RadTab runat="server" Text="Determination Notice" PageViewID="rpvDeterminationNotice">

</telerik:RadTab>

</Tabs>

</telerik:RadTabStrip>

<telerik:RadMultiPage runat="server" ID="rmpSubmitterNotice" SelectedIndex="0" RenderSelectedPageOnly="false">

<telerik:RadPageView runat="server" ID="rpvSubmitterResponse">

<asp:Label ID="lblSubmitterResponse" Font-Bold="true" Font-Italic="true" Text="Submitter Response"

Visible="false" runat="server"></asp:Label>

<telerik:RadGrid runat="server" ID="rgdSubmitterNotice" DataSourceID="odsSubmitterResponse" ShowFooter="true"

AllowSorting="true" EnableLinqExpressions="false">

<MasterTableView ShowHeader="true" AutoGenerateColumns="false" AllowPaging="true"

DataKeyNames="FAC_RECORD_UID" PageSize="10" HierarchyLoadMode="ServerOnDemand">

<Columns>

<telerik:GridBoundColumn SortExpression="FAC_RECORD_UID" HeaderText="OASIS #" HeaderButtonType="TextButton" DataField="FAC_RECORD_UID" UniqueName="FAC_RECORD_UID">

</telerik:GridBoundColumn>

<telerik:GridDateTimeColumn SortExpression="DATE_RECEIVED" HeaderText="Received Date" HeaderButtonType="TextButton"

DataField="DATE_RECEIVED" UniqueName="DATE_RECEIVED" DataFormatString="{0:MM/dd/yyyy}">

</telerik:GridDateTimeColumn>

<telerik:GridBoundColumn SortExpression="RESPONSE_VALUE" HeaderText="Response" HeaderButtonType="TextButton" DataField="RESPONSE_VALUE" UniqueName="RESPONSE_VALUE">

</telerik:GridBoundColumn>

</Columns>

</MasterTableView>

</telerik:RadGrid>

</telerik:RadPageView>

<telerik:RadPageView runat="server" ID="rpvDeterminationNotice">

<asp:Label ID="lblDeterminationNotice" Font-Bold="true" Font-Italic="true" Text="Determination Notice"

Visible="false" runat="server"></asp:Label>

<telerik:RadGrid runat="server" ID="rgdDeterminationNotice" DataSourceID="odsDeterminationNotice" ShowFooter="true"

AllowSorting="true" EnableLinqExpressions="false">

<MasterTableView ShowHeader="true" AutoGenerateColumns="false" AllowPaging="true"

DataKeyNames="FAC_RECORD_UID" PageSize="10" HierarchyLoadMode="ServerOnDemand">

<Columns>

<telerik:GridBoundColumn SortExpression="FAC_RECORD_UID" HeaderText="OASIS #" HeaderButtonType="TextButton" DataField="FAC_RECORD_UID" UniqueName="FAC_RECORD_UID">

</telerik:GridBoundColumn>

<telerik:GridDateTimeColumn SortExpression="DATE_SENT" HeaderText="Date Sent" HeaderButtonType="TextButton"

DataField="DATE_SENT" UniqueName="DATE_SENT" DataFormatString="{0:MM/dd/yyyy}">

</telerik:GridDateTimeColumn>

<telerik:GridDateTimeColumn SortExpression="DOCUMENT_RELEASE_DATE" HeaderText="Document Release Date" HeaderButtonType="TextButton"

DataField="DOCUMENT_RELEASE_DATE" UniqueName="DOCUMENT_RELEASE_DATE" DataFormatString="{0:MM/dd/yyyy}">

</telerik:GridDateTimeColumn>

<telerik:GridBoundColumn SortExpression="REMARKS" HeaderText="Remarks" HeaderButtonType="TextButton" DataField="REMARKS" UniqueName="REMARKS">

</telerik:GridBoundColumn>

</Columns>

</MasterTableView>

</telerik:RadGrid>

</telerik:RadPageView>

</telerik:RadMultiPage>

</asp:Panel>

</NestedViewTemplate>

<Columns>

<telerik:GridBoundColumn SortExpression="OASIS_NUMBER" HeaderText="Submitter Notice OASIS #" HeaderButtonType="TextButton" DataField="OASIS_NUMBER" UniqueName="OASIS_NUMBER">

</telerik:GridBoundColumn>

<telerik:GridDateTimeColumn SortExpression="DATE_SENT" HeaderText="Submitter Notice Date Sent" HeaderButtonType="TextButton" DataField="DATE_SENT" UniqueName="DATE_SENT" DataFormatString="{0:MM/dd/yyyy}">

</telerik:GridDateTimeColumn>

<telerik:GridDateTimeColumn SortExpression="DATE_DUE" HeaderText="Submitter Notice Date Due" HeaderButtonType="TextButton" DataField="DATE_DUE" UniqueName="DATE_DUE" DataFormatString="{0:MM/dd/yyyy}">

</telerik:GridDateTimeColumn>

</Columns>

</mastertableview>

<clientsettings allowdragtogroup="False">

<Scrolling AllowScroll="True" UseStaticHeaders="True" />

</clientsettings>

<headercontextmenu enableautoscroll="True">

</headercontextmenu>

</telerik:RadGrid>

 




public

partial class SubmitterMatrix : System.Web.UI.UserControl

 {

 

 

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

 {

 

 

if (rgdSubmitterMatrix.MasterTableView.Items.Count > 0)

 

{

rgdSubmitterMatrix.MasterTableView.Items[0].Expanded =

 

true;

 

rgdSubmitterMatrix.MasterTableView.Items[0].ChildItem.FindControl(

 

"InnerContainer").Visible = true;

 

}

 

}

 

 

protected void rgdSubmitterMatrix_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)

 {

 }

 

 

protected void rgdSubmitterMatrix_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)

 {

}

 

 

protected void rgdSubmitterMatrix_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)

 {

if (e.CommandName == RadGrid.ExpandCollapseCommandName && e.Item is GridDataItem)

{

((GridDataItem)e.Item).ChildItem.FindControl("InnerContainer").Visible = !e.Item.Expanded;

}

}

 

 

protected void rgdSubmitterMatrix_ItemCreated(object sender, GridItemEventArgs e)

{

if (e.Item is GridNestedViewItem)

{

e.Item.FindControl("InnerContainer").Visible = ((GridNestedViewItem)e.Item).ParentItem.Expanded;

}

}

 

 

protected void odsSubmitterNotice_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

}

 

 

protected void odsSubmitterNotice_Selected(object sender, ObjectDataSourceStatusEventArgs e)

{

}

 

 

protected void odsSubmitterResponse_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

}

 

 

protected void odsDeterminationNotice_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

}


Eyup
Telerik team
 answered on 23 Nov 2012
1 answer
174 views
Hello,

I want to know if there is any way I can dynamically add a Detail Table between a Rad Grid and another Detail Table.
The structure would be the following:

Before addition:
<RadGrid>
<DetailTable ID="1">
</DetailTable>
</RadGrid>

After addition:
<RadGrid>
<DetailTable ID="2">
<DetailTable ID="1">
</DetailTable>
</DetailTable>
</RadGrid>

The Rad Grid and the detail tables feed from their own objectdatasource.

Thanks in advance.
Eyup
Telerik team
 answered on 23 Nov 2012
5 answers
107 views
hi 

i would keep the list of files after a postback like do the postbacktrigger property but i need it for validation purpose and so the postback to validate is the same than for upload.

i mean i have a single button to save my form and upload the file in server code i validate my form if there is a problem. i need to show again the form with information about the validation if no problem i save everything.

if i use the postbacktriggers property i don't get the upload event and i absolutely need it.

so i'm looking for away to give or keep the list in client side.

hope it was clear enough :-)

thank you 
Plamen
Telerik team
 answered on 23 Nov 2012
1 answer
97 views
Hello all,

I have encountered a problem while using the GroupFooterTemplate in RadGrid. I have implemented a RadGrid using GroupFooterTemplate according the documentation that I have found at your web site. Here is the link to the documentation: 
Group Header and Footer Templates

In the GroupFooterTemplate, I used several <td></td> together with labels to show the footer items. I have to use GroupFooterTemplate because a checkbox must be displayed in one of the footer columns.

The issue occured, when I used Aggregate="Custom" as follows
<telerik:GridBoundColumn UniqueName="OrderNo" DataField="OrderNo" HeaderText="Order No." Aggregate="Custom" />

The error message that I got is as follows:

An entry with the same key already exists.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: An entry with the same key already exists.

Source Error: 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 
[ArgumentException: An entry with the same key already exists.] 
System.Collections.Specialized.ListDictionary.Add(Object key, Object value) +6236829
Telerik.Web.UI.GridBoundColumn.PopulateAggragateInGroupFooter(TableCell cell, Object result) +142
Telerik.Web.UI.GridBoundColumn.ApplyAggregates(TableCell cell, String footerText) +2485
Telerik.Web.UI.GridBoundColumn.InitializeCell(TableCell cell, Int32 columnIndex, GridItem inItem) +637
Telerik.Web.UI.GridGroupFooterItem.Initialize(GridColumn[] columns) +262
Telerik.Web.UI.GridItem.SetupItem(Boolean dataBind, Object dataItem, GridColumn[] columns, ControlCollection rows) +964
Telerik.Web.UI.GridItemBuilder.CreateGroupFooterItem(GridGroupingContext group) +179
Telerik.Web.UI.GridItemBuilder.HandleGrouping(GridGroupingContext group, GridEnumerableBase enumerable, Boolean& isGroup, Boolean& isGroupFooter) +204
Telerik.Web.UI.GridItemBuilder.CreateItems(GridGroupingContext group) +323
Telerik.Web.UI.GridItemBuilder.CreateGroupSubItems(GridGroupingContext group, GridEnumerableBase enumerable) +783
Telerik.Web.UI.GridItemBuilder.HandleGrouping(GridGroupingContext group, GridEnumerableBase enumerable, Boolean& isGroup, Boolean& isGroupFooter) +81
Telerik.Web.UI.GridItemBuilder.CreateItems(GridGroupingContext group) +323
Telerik.Web.UI.GridTableView.CreateItems(IEnumerator enumerator, GridColumn[] columns, ControlCollection controls) +193
Telerik.Web.UI.GridTableView.CreateControlHierarchy(Boolean useDataSource) +2170
Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource) +832
System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +66
System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +128
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +33
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143
Telerik.Web.UI.GridTableView.PerformSelect() +38
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74
Telerik.Web.UI.GridTableView.DataBind() +369
Telerik.Web.UI.RadGrid.DataBind() +173
Telerik.Web.UI.RadGrid.AutoDataBind(GridRebindReason rebindReason) +4085
Telerik.Web.UI.RadGrid.OnLoad(EventArgs e) +183
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Control.LoadRecursive() +146
System.Web.UI.Control.LoadRecursive() +146
System.Web.UI.Control.LoadRecursive() +146
System.Web.UI.Control.LoadRecursive() +146
System.Web.UI.Control.LoadRecursive() +146
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

If I used Aggregate="Sum" or Aggregate="Count" instead of Aggregate="Custom" , the web application could run without error. Could you please tell me how to use aggregate custom correctly while using the GroupFooterTemplate?

Many thanks in advance!



Greetings,
Y. Lueg
Radoslav
Telerik team
 answered on 23 Nov 2012
Narrow your results
Selected tags
Tags
+? more
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
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?