Telerik Forums
UI for ASP.NET AJAX Forum
4 answers
320 views
I'm binding the radgrid to a object datasource
In the select method i return a populated DataTable as seen below.
The columns are created dynamically and given a specific type because i want to use the radgrid filter.

public DataTable SelectMethod(string filterExpression, string sortExpression, string strDoctype, int maximumRows, int startRowIndex)
{
    DataTable oTable = new DataTable();
    Doctype oDoctype = new Doctype();
    bool bSuccess = true;
 
    Hashtable oInfo = new Hashtable();
    try
    {
        oDoctype = DoctypeADO.Retrieve_byDoctypeID(strDoctype);
    }
    catch
    {
        bSuccess = false;
    }
 
    if (bSuccess)
    {
        oTable.Columns.Add("DocumentID", typeof(String));
        oTable.Columns.Add("DoctypeID", typeof(String));
 
        XmlDocument oDoc = new XmlDocument();
        oDoc.LoadXml(oDoctype.DoctypeXML);
 
        foreach (XmlNode oNode in oDoc.DocumentElement)
        {
            oInfo.Add(oNode.Name, oNode.ChildNodes[0].InnerText);
        }
 
        ICollection oColl = oInfo.Keys;
        List<string> oBuilder = new List<string>();
        foreach (string strkey in oColl)
        {
            string type = string.Empty;
 
            switch (oInfo[strkey].ToString())
            {
                case "Boolean":
                    {
                        type = "Bit";
                        oTable.Columns.Add(strkey, typeof(Boolean));
                        break;
                    }
                case "Byte":
                    {
                        type = "smallint";
                        oTable.Columns.Add(strkey, typeof(Byte));
                        break;
                    }
                case "DateTime":
                    {
                        type = "datetime";
                        oTable.Columns.Add(strkey, typeof(DateTime));
                        break;
                    }
                case "Double":
                    {
                        type = "decimal";
                        oTable.Columns.Add(strkey, typeof(Double));
                        break;
                    }
                case "Int16":
                    {
                        type = "smallint";
                        oTable.Columns.Add(strkey, typeof(Int16));
                        break;
                    }
                case "Int32":
                    {
                        type = "int";
                        oTable.Columns.Add(strkey, typeof(Int32));
                        break;
                    }
                case "Single":
                    {
                        type = "decimal";
                        oTable.Columns.Add(strkey, typeof(Single));
                        break;
                    }
                case "String":
                    {
                        type = "varchar(100)";
                        oTable.Columns.Add(strkey, typeof(String));
                        break;
                    }
                default: { break; }
            }
 
            oBuilder.Add("document_xml.value('(//Fields/" + strkey + "/Value)[1]','" + type + "') as " + strkey);
        }
 
        string strQuery = @"select
                        document_id as DocumentID,
                        doctype_id as DoctypeID,
                        " + String.Join(",", oBuilder.ToArray()) +
                        @" from ( select row_number() over (order by document_id asc) as rownumber, *
                        from cs_document
                        where doctype_id = @doc_id
                        ) as test
                        where ROWNUMBER  between @nStart+1 and @nEnd";
 
        strQuery = AddFilter_Sorting(strQuery, filterExpression, sortExpression);
 
        oCommand = new SqlCommand(strQuery);
 
        oCommand.Parameters.Add(
            new SqlParameter
            {
                DbType = DbType.String,
                ParameterName = "doc_id",
                Value = strDoctype
            });
 
        oCommand.Parameters.Add(
            new SqlParameter
            {
                DbType = DbType.Int32,
                ParameterName = "nStart",
                Value = startRowIndex
            });
 
        oCommand.Parameters.Add(
            new SqlParameter
            {
                DbType = DbType.Int32,
                ParameterName = "nEnd",
                Value = startRowIndex + maximumRows
            });
 
        oCommand.Connection = oConnection;
 
        try
        {
            oConnection.Open();
            oReader = oCommand.ExecuteReader();
 
            while (oReader.Read())
            {
                object[] data = new object[oTable.Columns.Count];
 
                for (int i = 0; i < oTable.Columns.Count; i++)
                {
                    data[i] = oReader[oTable.Columns[i].ColumnName];
                }
                 
                DataRow oRow = oTable.NewRow();
                oRow.ItemArray = data;
                oTable.Rows.Add(oRow);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
 
    return oTable;
}

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
e.InputParameters["filterExpression"] = RadGrid1.MasterTableView.FilterExpression;
e.InputParameters["sortExpression"] = RadGrid1.MasterTableView.SortExpressions.GetSortString();
}

Here is the grid and objectdatasource from the aspx

<telerik:RadGrid ID="RadGrid1" runat="server" Width="100%" GridLines="None" AllowPaging="true"
                       AutoGenerateColumns="true" AllowFilteringByColumn="false" PageSize="10" AllowSorting="true"
                       Skin="Outlook" DataSourceID="ObjectDataSource1">
                       <MasterTableView AllowCustomSorting="true" OverrideDataSourceControlSorting="true">
                           <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
                           <Columns>
                               <telerik:GridTemplateColumn UniqueName="Uniq" HeaderText="Check" AllowFiltering="False">
                                   <ItemTemplate>
                                       <asp:CheckBox ID="check" runat="server" />
                                   </ItemTemplate>
                               </telerik:GridTemplateColumn>
                           </Columns>
                           <HeaderStyle VerticalAlign="Middle" />
                           <ItemStyle VerticalAlign="Middle" />
                           <FilterItemStyle VerticalAlign="Middle" />
                       </MasterTableView>
                   </telerik:RadGrid>
                   <asp:ObjectDataSource ID="ObjectDataSource1" TypeName="WebApplication1.DatabaseHandle.ObjectSource"
                       EnablePaging="true" SelectMethod="SelectMethod" SelectCountMethod="MySelectCount"
                       runat="server" OnSelecting="ObjectDataSource1_Selecting">
                       <SelectParameters>
                           <asp:Parameter Name="filterExpression" Type="String" />
                           <asp:Parameter Name="sortExpression" Type="String" />
                           <asp:ControlParameter ControlID="hidden_doctype" DbType="String" PropertyName="Value"
                               Name="strDoctype" />
                       </SelectParameters>
                   </asp:ObjectDataSource>

The problem is that when after adding a populated datetime column in the datatable it throw's me the following error at runtime :
With any other columns i have no problem.
I'm guessing it's throwing this exception when it's adding the calendar buttons in the filterzone of the grid.

The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.
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.Web.HttpException: The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.
 
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:
 
[HttpException (0x80004005): The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.]
   System.Web.UI.ControlCollection.Add(Control child) +8680983
   Telerik.Web.UI.GridDateTimeColumn.GetSharedCalendar() +192
   Telerik.Web.UI.GridDateTimeColumn.SetupFilterControls(TableCell cell) +2169
   Telerik.Web.UI.GridColumn.InitializeCell(TableCell cell, Int32 columnIndex, GridItem inItem) +5498
   Telerik.Web.UI.GridBoundColumn.InitializeCell(TableCell cell, Int32 columnIndex, GridItem inItem) +50
   Telerik.Web.UI.GridItem.Initialize(GridColumn[] columns) +142
   Telerik.Web.UI.GridItem.SetupItem(Boolean dataBind, Object dataItem, GridColumn[] columns, ControlCollection rows) +939
   Telerik.Web.UI.GridTableView.CreateFilteringItem(Boolean useDataSource, GridColumn[] copiedColumnSet, GridTHead thead) +146
   Telerik.Web.UI.GridTableView.CreateControlHierarchy(Boolean useDataSource) +1495
   Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource) +777
   System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +57
   System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +114
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +31
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142
   Telerik.Web.UI.GridTableView.PerformSelect() +38
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
   Telerik.Web.UI.GridTableView.DataBind() +351
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
   System.Web.UI.WebControls.BaseDataBoundControl.OnPreRender(EventArgs e) +22
   Telerik.Web.UI.GridTableView.OnPreRender(EventArgs e) +57
   System.Web.UI.Control.PreRenderRecursiveInternal() +80
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842

If i set the datetime column to string per example it works perfectly.
bogdan
Top achievements
Rank 1
 answered on 24 Nov 2010
3 answers
78 views
Is there a way to include a control (a link) right above the details table when expanding a row? Hopefully the code below explains this a little better:

<telerik:RadGrid ID="RadGrid2" runat="server" ShowStatusBar="true" AutoGenerateColumns="False" AllowSorting="True" skin="Windows7">
        <MasterTableView DataKeyNames="DepartmentID">
 
            <%--I want to put a link here--%>
 
            <DetailTables>
                <telerik:GridTableView Name="DetailsGrid">
                    <Columns>
                        <telerik:GridBoundColumn SortExpression="PersonName" HeaderText="Person Name" DataField="PersonName"></telerik:GridBoundColumn>
                    </Columns>
                </telerik:GridTableView>
            </DetailTables>
            <Columns>
                <telerik:GridBoundColumn SortExpression="DepartmentName" HeaderText="Department Name" DataField="DepartmentName"></telerik:GridBoundColumn>
            </Columns>
        </MasterTableView>
    </telerik:RadGrid>
Billy
Top achievements
Rank 2
 answered on 24 Nov 2010
1 answer
102 views
On my page I have a radgrid "rgdProductList" and I'm trying to add ajax settings to update a UserControl "Navigation" within the master page. Inside the UserControl "Navigation" I have a div with an id of "nav"

On Master Page:
<%@ Register Src="../Modules/Controls/nav.ascx" TagName="Navigation" TagPrefix="uc1" %>
...
<uc1:Navigation ID="Navigation" runat="server" />


On "Navigation" UserControl:
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="nav.ascx.vb" Inherits="Modules_Controls_nav" %>
<div id="nav" runat="server" class="navigation">
    <!-- Inner Content Goes here -->
</div>


On "Products" page (which inherits that master page above): [NOTE: rgdProductList is a radgrid on the products page]
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 
    Dim oNavigation As Modules_Controls_nav = DirectCast(Me.Master.Controls(0).FindControl("Navigation"), Modules_Controls_nav)
    RadAjaxManager.AjaxSettings.AddAjaxSetting(rgdProductList, oNavigation)
 
    Dim oNav As HtmlGenericControl = DirectCast(Me.Master.Controls(0).FindControl("Navigation").FindControl("nav"), HtmlGenericControl)
    RadAjaxManager.AjaxSettings.AddAjaxSetting(rgdProductList, oNav)
      
End Sub


As shown above, I tried adding AjaxSettings to both the UserControl itself as well as the inner div tag. I also tried adding a ajaxsetting to the master page, but it generates a radcodeblock error. I also tried wrapping the div tag in a update panel to no avail.

Any help on this subject would be GREATLY appreciated. NOTE: all other ajax settings on the page work fine and I don't see any JS errors. I tried adding a radloadingpanel and it did not show up for these ajax settings, but did for all other ajax settings on the page.

Pavlina
Telerik team
 answered on 24 Nov 2010
1 answer
116 views
I created a user control that just contained the markup for a RAD editor, so I could set up all the defaults of the editor in one place and add the user control to the page where ever I needed to use a rich text editor.

Here is the markup I used (nothing fancy)

<telerik:RadEditor Width="99%" SpellCheckSettings-DictionaryPath="~/App_files/RadSpell" ID="editor"
    EditModes="Design" StripFormattingOptions="Span, Font, Css, MSWordRemoveAll"
    NewLineBr="false" runat="server">
    <CssFiles>
        <telerik:EditorCssFile Value="~/styles/userControls/editorDefaults.css" />
    </CssFiles>
</telerik:RadEditor>

The code-behind just sets up default upload paths and declares public properties for stuff like the toolsfile (nothing fancy there either)

The problem comes when I add the control to the page.  It renders correctly, including loading the correct toolsfile, however, the editor is disabled.  When I view the console for errors in Google Chrome, I get "Uncaught Error: INVALID_ACCESS_ERR: DOM Exception 15" in Telerik.Web.UI.WebResource.axd
Rumen
Telerik team
 answered on 24 Nov 2010
4 answers
1.2K+ views
Hello,
        I want to show the ajaxloadingpanel on my asp button click event. The asp button is present outside the grid.The grid is ajaxified by using radajaxmanager.Kindly help me out.

Best Regards,
Manaswinee
Tsvetina
Telerik team
 answered on 24 Nov 2010
1 answer
57 views
Dear All,

Suddenly on running application I am started getting below error. I have used RadAjaxManager And RadAjaxLoadingPanel.
Please provide some help. Even on internet I am getting less material about this issue.

ERROR:


Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Timestamp: Wed, 24 Nov 2010 10:47:41 UTC


Message: Sys.WebForms.PageRequestManagerServerErrorException: Object reference not set to an instance of an object.
Line: 4723
Char: 21
Code: 0
URI: http://www.xxxxxxx.com:83/ScriptResource.axd?d=Nkjx0YgmbL3PPM6LcoIdjuv0Agi124qbImiuw4i7Y7RnUGaa-M18pShuJPrWk2mfNfwFfwyGFZVRYVcIHEDPPH-SAvkuSxRoAqFLp4qulsUVblJyrmvcMRmWfafhCCb1GQBHEHxfBGVXIuxnBFn2wgvEn83cZ-QTlQW2FPNUztfb7vUJ0&t=5c2f384e
Pavlina
Telerik team
 answered on 24 Nov 2010
3 answers
117 views
Hello,

Due to some problems implementing radcombobox to select from a list of records, I'm trying to create a radwindow with a radgrid inside to allow the selection of one record from it.

I was reviewing a lot of examples and the example more similar is "Window / Using the URL for Server Arguments". This example only show a radwindow with a grid inside but not return any values to parent form.

For my purposes, just change the parent grid for a data entry form and in a field with a button I want to open a radwindow with the grid and when the user select a record, return the id and description of the record to the parent form to fill the current field.

From this example I'm trying to reduce the overload of getting a lot of data from several tables into the same data entry form.

Could you give provide me with an example of return values selected in a radgrid to a parent form?
Thanks a lot in advanced
Jose
Pavlina
Telerik team
 answered on 24 Nov 2010
1 answer
80 views
Hi,
Please find below as my requirment.
(Schedular - DayView)

Each appointment is associated with status (like created, confirmed, completed etc) and appointment should have color schema based on appointment status.
For example, all created appointments should disply in Red, confirmed appointments should display in Yellow etc.
Also, buttons should be displayed with each appointments, when user clicks on any button, appointment status should changed accordingly. i.e, when user clicks on Yellow Button, appointment status should be changed to confirmed.

To achieve above requirement, am making use of Appointment Template,  AppointmentCreated event, AppointmentCommand events of Schedular control.


Am using AppointmentCreated event for background color logic and AppointmentCommad event for updating appointment status logic.

When I clicks on button, which is in appointment template, order of events which are fired are AppointmentCreated, AppointmentCommand.

Everything working fine so far which satisfies my requirement. But the problem is, some times (randomly), buttons requires multiple clicks to fire “AppointmentCommand” event. In other words, when I click on button, it is only fires “AppointmentCreated” and not firing “AppointmentCommand”.

Any one, could you please help me in this issue. Thanks in advance.

 

Thanks,

Sumanth




Peter
Telerik team
 answered on 24 Nov 2010
1 answer
79 views
For some reason when I look at my grids with Firefox or Chrom the columns take the width of the  form. Please see attached image. In IE this problem does not happen. Any suggestions?

Thanks
Dimo
Telerik team
 answered on 24 Nov 2010
1 answer
350 views
Hi,

I have big problem in my application.

first i am inserted record in my application using Add New Record option in radgrid. it is inserted correctly. but then i clicked refresh button in IE8 browser. the same record inserted another time. it is a big problem for me.

Please give me a tips for how to resolve it.


Thanks,
Dhamu.
Vasil
Telerik team
 answered on 24 Nov 2010
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?