Telerik Forums
UI for ASP.NET AJAX Forum
2 answers
82 views
I need a Panel bar with item“s height arround 30px (mainly because then icons used). To achieve this I have declared the following css:
.RadPanelBar .rpText,  
.RadPanelBar .rpLink,
.RadPanelBar .rpSelected,
.rpLevel1 li
{  
    height: 30px!important;   
    display: block!important;   
    padding-bottom: 0px!important;  
    line-height:30px!important;  
    min-height:30px!important;
}
So far, so good.

The problem appears when an item is selected. The background bitmap do not covers all the item (see atached image).

How can I figure out this situation?

Regards


Audreyn Justus
Top achievements
Rank 1
 answered on 16 Dec 2010
1 answer
150 views
Hello
I am trying to add a tooltip to a RadTreeView component using a web service. I get several errors stating that the "Object doesn't support this property or method" beginning with the id property as shown in the attached screen shots.
My RadToolTipManager object is:
<telerik:RadToolTipManager ID="RadToolTipManager1" Width="300px" Skin="Black" Height="200px" HideDelay="3" RelativeTo="Element" runat="server" EnableShadow="true" OffsetX="5" Position="MiddleRight">
<WebServiceSettings Path="~/TreeViewWebService.asmx" Method="GetTestScenarioExecutionResultToolTip" />
</telerik:RadToolTipManager>

My RadTreeView object is:
<telerik:RadTreeView ID="RadTreeViewParts" runat="server" Height="100%" Width="100%" OnClientNodePopulating="nodePartsPopulating" OnNodeClick="RadTreeViewParts_NodeClick" OnClientNodeDataBound="OnClientNodeDataBoundHandler" OnClientMouseOver="OnPartsTreeNodeMouseOver">
<WebServiceSettings Path="~/TreeViewWebService.asmx" Method="GetPartNodes" />
</telerik:RadTreeView>

My client side javascript code is:
<script type="text/javascript">
 function nodePartsPopulating(sender, eventArgs)
{
var node = eventArgs.get_node();
var context = eventArgs.get_context();
context["Text"] = node.get_text();
context["Value"] = node.get_value();
context["Level"] = node.get_level();
context["Category"] = node.get_category();
}

function OnClientNodeDataBoundHandler(sender, e)
{
   var node = e.get_node();
    var nodeLevel = node.get_level();
    if (nodeLevel == 5)
    {
        //node.set_toolTip(node.get_attributes().getAttribute("ToolTip"));
    }
}
function OnPartsTreeNodeMouseOver(sender, eventArgs)
{
      
var node = eventArgs.get_node();
//  var node = sender.get_node();
    var nodeLevel = node.get_level();
    if (nodeLevel == 5)
    {
        var tooltipManager = $find("<%= RadToolTipManager1.ClientID %>");
      
        if (!tooltipManager) return;
      
        //Find the tooltip for this element if it has been created 
        var tooltip = tooltipManager.getToolTipByElement(sender);
      
        //Create a tooltip if no tooltip exists for such node 
        if (!tooltip)
        {
            tooltip = tooltipManager.createToolTip(sender);
            tooltip.set_value(node.get_value());
        }
  
        //Let the tooltip's own show mechanism take over from here - execute the onmouseover just once
        node.onmouseover = null;
  
        //show the tooltip
        tooltip.show();
    }
</script>

My Web Service code is:
[System.Web.Script.Services.ScriptService]
public class TreeViewWebService : WebService
{
  
#region "GetTestScenarioExecutionResultToolTip"
      
    [WebMethod(EnableSession = true)]
    public string GetTestScenarioExecutionResultToolTip(object context)
    {
        IDictionary<string, object> contextDictionary = (IDictionary<string, object>)context;
        string elementID = ((string)contextDictionary["Value"]);
          
        if (elementID == string.Empty)
        {
            throw new Exception("No Value argument is provided to the webservice!");
        }
  
        DataTable information = new DataTable();
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabasePKIMrpDbDEV1"].ConnectionString);
        try
        {
            conn.Open();
            SqlDataAdapter adapter = new SqlDataAdapter();
            try
            {
                adapter.SelectCommand = new SqlCommand("SELECT * FROM [vwToolTipTestScenarioExecutionResult] WHERE TestScenarioExecutionResultKey=@id", conn);
                adapter.SelectCommand.Parameters.AddWithValue("@id", elementID);
                adapter.Fill(information);
            }
            finally
            {
                if (!Object.Equals(adapter.SelectCommand, null)) adapter.SelectCommand.Dispose();
            }
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        DataRow row = information.Rows[0];
        return ViewManager.RenderView("~/TestScenarioExecutionResult/TestScenarioExecutionResultToolTip.ascx", information);      
  
    }
  
#endregion

I also use the RenderView class from the Web Service ToolTip example:
public class ViewManager
{
    public static string RenderView(string path)
    {
        return RenderView(path, null);
    }
  
    public static string RenderView(string path, object data)
    {
        Page pageHolder = new Page();
        UserControl viewControl = (UserControl)pageHolder.LoadControl(path);
  
        if (data != null)
        {
            Type viewControlType = viewControl.GetType();
            FieldInfo field = viewControlType.GetField("Data");
  
            if (field != null)
            {
                field.SetValue(viewControl, data);
            }
            else
            {
                throw new Exception("View file: " + path + " does not have a public Data property");
            }
        }
  
        pageHolder.Controls.Add(viewControl);
  
        StringWriter output = new StringWriter();
        HttpContext.Current.Server.Execute(pageHolder, output, false);
  
        return output.ToString();
    }
}

I actually don't use the OnClientNodeDataBoundHandler code with the web service approach. It is in place to support showing the standard windows tooltip. This is why the line that sets the tooltip in that function is commented out.
Any suggestions would be greatly appreciated.
Thank you,
Michael
Svetlina Anati
Telerik team
 answered on 16 Dec 2010
1 answer
107 views
I have a radgrid that has an Add Record form that has a RadComboBox and 2 RadNumericTextBox's (see attached image).  I want to be able to press the TAB key on the Job Class Code RadComboBox and tab to the is the Gross Payroll Amount for 2008 RadNumericTextBox.  Instead the tab goes to the submit button.  How do I control the tabbing between fields?  Below is the code for the RadGrid.

<telerik:RadGrid ID="gvGrossPayroll" runat="server"
    AllowAutomaticDeletes="True" AllowAutomaticUpdates="True" AllowAutomaticInserts="False"  OnInsertCommand="gvGrossPayroll_InsertCommand"
    AutoGenerateColumns="False" DataSourceID="SDS_Payroll" GridLines="None" OnItemCommand="gvGrossPayroll_ItemCommand"
    ShowFooter="True" Skin="Web20" Width="544px">
    <MasterTableView AutoGenerateColumns="False" CommandItemDisplay="TopAndBottom"
        DataKeyNames="ID" DataSourceID="SDS_Payroll">
        <RowIndicatorColumn>
            <HeaderStyle Width="20px" />
        </RowIndicatorColumn>
        <ExpandCollapseColumn>
            <HeaderStyle Width="20px" />
        </ExpandCollapseColumn>
        <CommandItemSettings />
        <Columns>
            <telerik:GridBoundColumn DataField="id" ReadOnly="True" UniqueName="ID"
                Visible="False">
            </telerik:GridBoundColumn>
            <telerik:GridTemplateColumn EditFormColumnIndex="0" HeaderText="Job Class Code" DataField="JobClass"
                UniqueName="JobClass" Visible="true" ReadOnly="False" HeaderStyle-VerticalAlign="Bottom">
                <ItemTemplate>
                    <asp:Label ID="JobClass" runat="server" Text='<%# Bind("JobClass") %>'></asp:Label>
                </ItemTemplate>
                <InsertItemTemplate>
                <telerik:RadComboBox ID="ddlJobClassID" Runat="server" AllowCustomText="True"
                    DataSourceID="SqlDataSourceDDL" DataTextField="JobClass"
                    DataValueField="JobClassID" EmptyMessage="Please enter a job class code"
                    EnableViewState="False"  AppendDataBoundItems="true"
                    ErrorMessage="You must enter a job class code to add a record"
                    MarkFirstMatch="True" ShowDropDownOnTextboxClick="False" Skin="Web20"
                    ToolTip="Enter a Job Class Code" Width="350px" SelectedValue='<%# Bind("JobClassID") %>'>
                </telerik:RadComboBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
                    ErrorMessage="Job Class Code is a required field" Font-Bold="True"
                    Font-Names="Arial Narrow" ForeColor="Red" ControlToValidate="ddlJobClassID"
                    ToolTip="Job Class Code is a required field">X
                </asp:RequiredFieldValidator>
                </InsertItemTemplate>
                <EditItemTemplate>
                    <asp:Label ID="JobClass" runat="server" Text='<%# Bind("JobClassID") %>'></asp:Label>
                </EditItemTemplate>                                                                         
                <HeaderStyle VerticalAlign="Bottom" />
            </telerik:GridTemplateColumn>
            <telerik:GridTemplateColumn EditFormColumnIndex="0" HeaderText="Year1"
                UniqueName="PayrollAmount1" Visible="true" Aggregate="Sum" DataField="PayrollAmount1"
                FooterAggregateFormatString="{0:C}" HeaderStyle-Width="60px">
                <ItemTemplate>
                    <asp:Label ID="PayrollAmount1" runat="server" Text='<%# Eval("PayrollAmount1", "{0:C}") %>'></asp:Label>
                </ItemTemplate>
                <InsertItemTemplate>
                    <telerik:RadNumericTextBox ID="txtPayrollAmount1a" Runat="server"
                        Culture="English (United States)" MinValue="0" NumberFormat-DecimalDigits="0"
                        Skin="Web20" TabIndex="2" ToolTip="Payroll Amount" Type="Currency"
                        Width="100px" Value="0" Text='<%# Bind("PayrollAmount1") %>' >
                        <EnabledStyle HorizontalAlign="Right" />
                        <NumberFormat DecimalDigits="0" />
                    </telerik:RadNumericTextBox>
                </InsertItemTemplate>
                                                                                                 
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="txtPayrollAmount1" Runat="server"
                        Culture="English (United States)" MinValue="0" NumberFormat-DecimalDigits="0"
                        Skin="Web20" TabIndex="2" ToolTip="Payroll Amount" Type="Currency"
                        Text='<%# Bind("PayrollAmount1") %>' Width="100px">
                        <EnabledStyle HorizontalAlign="Right" />
                        <NumberFormat DecimalDigits="0" />
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
                <FooterStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right"
                    Wrap="True" />
                <HeaderStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center"
                    Wrap="True" />
                <ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right"
                    Wrap="True" />
            </telerik:GridTemplateColumn>
            <telerik:GridTemplateColumn EditFormColumnIndex="0" HeaderText="Year2"
                UniqueName="PayrollAmount2" Visible="true" DataField="PayrollAmount2" Aggregate="Sum"
                FooterAggregateFormatString="{0:C}" HeaderStyle-Width="60px" >
                <ItemTemplate>
                    <asp:Label ID="PayrollAmount2" runat="server"
                        Text='<%# Eval("PayrollAmount2", "{0:C}") %>'></asp:Label>
                </ItemTemplate>
                <InsertItemTemplate>
                    <telerik:RadNumericTextBox ID="txtPayrollAmount2" Runat="server"
                        Culture="English (United States)" MinValue="0" NumberFormat-DecimalDigits="0"
                        Skin="Web20" TabIndex="2" ToolTip="Payroll Amount" Type="Currency" Value="0"
                        Width="100px" Text='<%# Bind("PayrollAmount2") %>'>
                        <EnabledStyle HorizontalAlign="Right" />
                        <NumberFormat DecimalDigits="0" />
                    </telerik:RadNumericTextBox>
                </InsertItemTemplate>
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="txtPayrollAmount2" Runat="server"
                        Culture="English (United States)" MinValue="0" NumberFormat-DecimalDigits="0"
                        Skin="Web20" TabIndex="2" ToolTip="Payroll Amount" Type="Currency"
                        Width="100px" Text='<%# Bind("PayrollAmount2") %>'>
                        <EnabledStyle HorizontalAlign="Right" />
                        <NumberFormat DecimalDigits="0" />
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
                <FooterStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right"
                    Wrap="True" />
                <HeaderStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Center"
                    Wrap="True" />
                <ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False"
                    Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right"
                    Wrap="True" />
            </telerik:GridTemplateColumn>
            <telerik:GridEditCommandColumn>
            </telerik:GridEditCommandColumn>
            <telerik:GridButtonColumn CommandName="Delete"
                ConfirmText="Delete this payroll record?" ImageUrl="/images/delete.gif"
                Text="Delete" UniqueName="column3">
            </telerik:GridButtonColumn>
                                                                                             
            <telerik:GridBoundColumn DataField="MemberID" DataType="System.Int16"
                UniqueName="MemberID" ReadOnly="True" Visible="False">
            </telerik:GridBoundColumn>
                                                                                             
        </Columns>
                                                                                         
        <EditFormSettings CaptionDataField="MemberID"
            CaptionFormatString="Edit Payroll Record" ColumnNumber="1"
            InsertCaption="Add Payroll Record">
            <FormTableItemStyle Wrap="False" />
            <FormCaptionStyle CssClass="EditFormHeader" />
            <FormMainTableStyle BackColor="White" CellPadding="3" CellSpacing="0"
                GridLines="None" Width="100%" />
            <FormTableStyle BackColor="White" CellPadding="2" CellSpacing="0"
                Height="110px" />
            <FormTableAlternatingItemStyle Wrap="False" />
            <EditColumn ButtonType="ImageButton" CancelText="Cancel edit"
                InsertText="Insert Record" UniqueName="EditCommandColumn1"
                UpdateText="Update record">
            </EditColumn>
            <FormTableButtonRowStyle CssClass="EditFormButtonRow" HorizontalAlign="Right" />
        </EditFormSettings>
    </MasterTableView>
    <ClientSettings AllowDragToGroup="True">
        <Selecting AllowRowSelect="True" />
    </ClientSettings>
    <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Web20"
        EnableImageSprites="True">
    </HeaderContextMenu>
</telerik:RadGrid>
WCRA Dev
Top achievements
Rank 1
 answered on 16 Dec 2010
3 answers
154 views
I  tried some ways:
 1. .verticalSliderView .ItemsSlider

{

 

font-size:large;

 

}

2. in  <telerik:RadSlider  Font-Bold="True" Font-Size="Larger"
but it does not help: size of of font is not changed and it too small.
Please help me.

 

Tsvetie
Telerik team
 answered on 16 Dec 2010
0 answers
108 views
Here's what I'm trying to accomplish. 

I have a div that contains a LinkButton and some text and I want to be able to open a context menu in the same location relative to that div (probably just open down from bottom center).  I'd like this to happen preferably on mouseover and then close when the mouse leaves both that div and the context menu.  I've been able to get the context menu to open relative to the mouse on mouseover but this isn't exactly what I'm trying to accomplish.

Thanks in advance,
Ben
Ben Grossman
Top achievements
Rank 1
 asked on 16 Dec 2010
1 answer
80 views
hi

i have a stored proc that does updates based on primary key.

basically, i want to update a field in a table based on the product key that is found the in radgrid.

for example, my radgrid now shows 5 products and i want to update my table based on those listed in a radgrid.

how should i go about it? thanks
Rafaga2k
Top achievements
Rank 1
 answered on 16 Dec 2010
1 answer
72 views
In our project, we've got a weppage with radgrid - one of its columns is templatecolumn with button inside. We're using onShow event set to "OnMouseOver" to displayo a tooltip. We noticed that some f our clients often click the button. When mouse starts to hover over the button but the tooltip isn't visible yet, they click the button which basically cancels the action of showing tooltip. It would be great if tooltip could ignore click on its parent in situation where it's already started to show due to onMouseOver action. Is it possible?
Svetlina Anati
Telerik team
 answered on 16 Dec 2010
5 answers
112 views
If you take the following code:
<telerik:Radslider id="slider2" runat="server" itemtype="Item" skin="Windows7" Height="40px">
  <Items>
    <telerik:RadSliderItem Value="1" Text="One" />
    <telerik:RadSliderItem Value="2" Text="Two" />
    <telerik:RadSliderItem Value="3" Text="Three" />
  </Items>
</telerik:Radslider>
<script type="text/javascript">
$(document).ready(function()
{
  $find('<%= slider2.ClientID %>').set_value(2);
});
</script>

and run it in a browser, it actually sets the slider to Item 3, not 2 as specified.
Is this a known issue or am I missing something here?
Tsvetie
Telerik team
 answered on 16 Dec 2010
3 answers
130 views
Hello,

I have a treeview in a combobox.
When i select a node, the node's text appears in the combobox input field.
In additional i set node's text as a tooltip.

1. Why the first line in the next code snippest doesn't work? (No tooltip appears)
//This line doesn't work for some reason that i don't know.
//comboBox.ToolTip = args.get_node().get_text();
  
//This line work's perfect.
comboBox._element.title = args.get_node().get_text();

2. I added an asp button to the page, after i click the button there is a postback that causes to the tooltip to disapear.
    How can i persist the tooltip?

Thanks,
Oren
Dimitar Terziev
Telerik team
 answered on 16 Dec 2010
1 answer
288 views
I realized I had posted this question in perhaps the wrong forum (here) so I am reposting here in hopes that someone might be able to answer this. Any help would be greatly appreciated!

I am trying to recreate functionality found in this demo from telerik.

When I attempt to drag and drop the available orders to shipped orders I receive an error:
Specified argument was out of the range of valid values. Parameter name: ItemHierarchicalIndex

I have modified very little from the default demo code.  The only change I have made is the GetOrder routine.  Here is my complete code:
<%@ Control Language="C#" ClassName="AddPortalDocs" Inherits="Sage.Platform.WebPortal.SmartParts.EntityBoundSmartPartInfoProvider" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
 
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
<telerik:RadAjaxManager runat="server" ID="radAjax" DefaultLoadingPanelID="RadAjaxLoadingPanel1">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="grdPendingOrders">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="grdPendingOrders" />
                <telerik:AjaxUpdatedControl ControlID="grdShippedOrders" />
                <telerik:AjaxUpdatedControl ControlID="msg" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="grdShippedOrders">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="grdShippedOrders" />
                <telerik:AjaxUpdatedControl ControlID="msg" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="UseDragColumnCheckBox">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="grdPendingOrders" />
                <telerik:AjaxUpdatedControl ControlID="grdShippedOrders" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
 
<telerik:RadScriptBlock runat="server" ID="scriptBlock">
    <script type="text/javascript">
            <!--
        function onRowDropping(sender, args) {
            if (sender.get_id() == "<%=grdPendingOrders.ClientID %>") {
                var node = args.get_destinationHtmlElement();
                if (!isChildOf('<%=grdShippedOrders.ClientID %>', node) && !isChildOf('<%=grdPendingOrders.ClientID %>', node)) {
                    args.set_cancel(true);
                }
            }
            else {
                var node = args.get_destinationHtmlElement();
                if (!isChildOf('trashCan', node)) {
                    args.set_cancel(true);
                }
                else {
                    if (confirm("Are you sure you want to delete this order?"))
                        args.set_destinationHtmlElement($get('trashCan'));
                    else
                        args.set_cancel(true);
                }
            }
        }
 
        function isChildOf(parentId, element) {
            while (element) {
                if (element.id && element.id.indexOf(parentId) > -1) {
                    return true;
                }
                element = element.parentNode;
            }
            return false;
        }
                -->
    </script>
</telerik:RadScriptBlock>
<div style="float: left; padding: 0 6px 0 10px">
    <h2 style="color: #9c3608">
        Pending Orders</h2>
    <telerik:RadGrid runat="server" ID="grdPendingOrders" OnNeedDataSource="grdPendingOrders_NeedDataSource"
        AllowPaging="True" Width="350px" OnRowDrop="grdPendingOrders_RowDrop" AllowMultiRowSelection="true"
        PageSize="30" EnableHeaderContextMenu="true">
        <MasterTableView DataKeyNames="OrderId" TableLayout="Fixed">
            <Columns>                       
            </Columns>
        </MasterTableView>
        <ClientSettings AllowRowsDragDrop="True" AllowColumnsReorder="true" ReorderColumnsOnClient="true">
            <Resizing AllowColumnResize="true" />
            <Selecting AllowRowSelect="True" EnableDragToSelectRows="false"/>
            <ClientEvents OnRowDropping="onRowDropping" />
            <Scrolling AllowScroll="true" UseStaticHeaders="true"/>
        </ClientSettings>
        <PagerStyle Mode="NumericPages" PageButtonCount="4" />
    </telerik:RadGrid>
</div>
<div style="float: right; padding: 0 10px 0 6px">
    <h2 style="color: #3c8b04">
        Shipped Orders</h2>
    <telerik:RadGrid runat="server" AllowPaging="True" ID="grdShippedOrders" OnNeedDataSource="grdShippedOrders_NeedDataSource"
        Width="350px" OnRowDrop="grdShippedOrders_RowDrop" AllowMultiRowSelection="true">
        <MasterTableView DataKeyNames="OrderId" Width="100%">
            <Columns>                       
            </Columns>
            <NoRecordsTemplate>
                <div style="height: 30px; cursor: pointer;">
                    No items to view</div>
            </NoRecordsTemplate>
            <PagerStyle Mode="NumericPages" PageButtonCount="4" />
        </MasterTableView>
        <ClientSettings AllowRowsDragDrop="True">
            <Selecting AllowRowSelect="True" EnableDragToSelectRows="false" />
            <ClientEvents OnRowDropping="onRowDropping" />
        </ClientSettings>
    </telerik:RadGrid>
</div>
<div style="clear: both;">
    <!-- -->
</div>
<asp:Image runat="server" ID="trashcan" ImageUrl="~/images/icons/recycle-bin-icon-32.gif" ToolTip="Drag selected accounts to here to remove them." />
 
<script runat="server" type="text/C#">
 
     
    public override Sage.Platform.Application.UI.ISmartPartInfo GetSmartPartInfo(Type smartPartInfoType)
    {
        Sage.Platform.WebPortal.SmartParts.ToolsSmartPartInfo ti = new Sage.Platform.WebPortal.SmartParts.ToolsSmartPartInfo();
        ti.Title = "Test";
        return ti;
    }
 
    public Sage.Entity.Interfaces.IAccount CurrentEntity
    {
        get { return this.BindingSource.Current as Sage.Entity.Interfaces.IAccount; }
    }
 
    protected void Page_Load(object sender, EventArgs e)
    { }
 
    protected void Page_Init(object sender, EventArgs e)
    { }
 
    protected void Page_PreRender(object sender, EventArgs e)
    { }
 
    [Sage.Platform.Application.ServiceDependency]
    public new Sage.Platform.Application.IEntityContextService EntityContext { set; get; }
 
    public override Type EntityType
    {
        get { return typeof(Sage.Entity.Interfaces.IAccount); }
    }
 
    protected override void OnAddEntityBindings()
    { }
 
    protected override void OnFormBound()
    {
        base.OnFormBound();
    }
 
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
    protected System.Collections.Generic.IList<Order> PendingOrders
    {
        get
        {
            try
            {
                object obj = Session["PendingOrders"];
                if (obj == null)
                {
                    obj = GetOrders();
                    if (obj != null)
                    {
                        Session["PendingOrders"] = obj;
                    }
                    else
                    {
                        obj = new System.Collections.Generic.List<Order>();
                    }
                }
                return (System.Collections.Generic.IList<Order>)obj;
            }
            catch
            {
                Session["PendingOrders"] = null;
            }
            return new System.Collections.Generic.List<Order>();
        }
        set { Session["PendingOrders"] = value; }
    }
 
    protected System.Collections.Generic.IList<Order> ShippedOrders
    {
        get
        {
            try
            {
                object obj = Session["ShippedOrders"];
                if (obj == null)
                {
                    Session["ShippedOrders"] = obj = new System.Collections.Generic.List<Order>();
                }
                return (System.Collections.Generic.IList<Order>)obj;
            }
            catch
            {
                Session["ShippedOrders"] = null;
            }
            return new System.Collections.Generic.List<Order>();
        }
        set { Session["ShippedOrders"] = value; }
    }
 
    protected void grdPendingOrders_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
    {
        grdPendingOrders.DataSource = PendingOrders;
    }
 
    protected System.Collections.Generic.IList<Order> GetOrders()
    {
        System.Collections.Generic.IList<Order> results = new System.Collections.Generic.List<Order>();
        int i = 0;
        Sage.Platform.RepositoryHelper<Sage.Entity.Interfaces.IAccount> repository = Sage.Platform.EntityFactory.GetRepositoryHelper<Sage.Entity.Interfaces.IAccount>();
        Sage.Platform.Repository.ICriteria criteria = repository.CreateCriteria();
        criteria.AddOrder(repository.EF.Asc("AccountName"));
        System.Collections.Generic.IList<Sage.Entity.Interfaces.IAccount> accounts = criteria.List<Sage.Entity.Interfaces.IAccount>();
        foreach (Sage.Entity.Interfaces.IAccount acc in accounts)
        {
            int id = (int)i;
            string customerID = acc.Id.ToString();
            DateTime requiredDate = acc.CreateDate.Value;
            string companyName = acc.AccountName;
            results.Add(new Order(id, customerID, companyName, requiredDate.ToShortDateString()));
            i++;
        }
        return results;
    }
 
    protected void grdShippedOrders_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
    {
        grdShippedOrders.DataSource = ShippedOrders;
    }
 
    protected void grdPendingOrders_RowDrop(object sender, GridDragDropEventArgs e)
    {
        if (string.IsNullOrEmpty(e.HtmlElement))
        {
            if (e.DraggedItems[0].OwnerGridID == grdPendingOrders.ClientID)
            {
                // items are drag from pending to shipped grid
                if ((e.DestDataItem == null && ShippedOrders.Count == 0) ||
                    e.DestDataItem != null && e.DestDataItem.OwnerGridID == grdShippedOrders.ClientID)
                {
                    System.Collections.Generic.IList<Order> shippedOrders = ShippedOrders;
                    System.Collections.Generic.IList<Order> pendingOrders = PendingOrders;
                    int destinationIndex = -1;
                    if (e.DestDataItem != null)
                    {
                        Order order = GetOrder(shippedOrders, (int)e.DestDataItem.GetDataKeyValue("OrderId"));
                        destinationIndex = (order != null) ? shippedOrders.IndexOf(order) : -1;
                    }
 
 
                    foreach (GridDataItem draggedItem in e.DraggedItems)
                    {
                        Order tmpOrder = GetOrder(pendingOrders, (int)draggedItem.GetDataKeyValue("OrderId"));
 
                        if (tmpOrder != null)
                        {
                            if (destinationIndex > -1)
                            {
                                if (e.DropPosition == GridItemDropPosition.Below)
                                {
                                    destinationIndex += 1;
                                }
                                shippedOrders.Insert(destinationIndex, tmpOrder);
                            }
                            else
                            {
                                shippedOrders.Add(tmpOrder);
                            }
 
                            pendingOrders.Remove(tmpOrder);
                        }
                    }
 
                    ShippedOrders = shippedOrders;
                    PendingOrders = pendingOrders;
                    grdPendingOrders.Rebind();
                    grdShippedOrders.Rebind();
                }
                else if (e.DestDataItem != null && e.DestDataItem.OwnerGridID == grdPendingOrders.ClientID)
                {
                    //reorder items in pending grid
                    System.Collections.Generic.IList<Order> pendingOrders = PendingOrders;
                    Order order = GetOrder(pendingOrders, (int)e.DestDataItem.GetDataKeyValue("OrderId"));
                    int destinationIndex = pendingOrders.IndexOf(order);
 
                    if (e.DropPosition == GridItemDropPosition.Above && e.DestDataItem.ItemIndex > e.DraggedItems[0].ItemIndex)
                    {
                        destinationIndex -= 1;
                    }
                    if (e.DropPosition == GridItemDropPosition.Below && e.DestDataItem.ItemIndex < e.DraggedItems[0].ItemIndex)
                    {
                        destinationIndex += 1;
                    }
 
                    System.Collections.Generic.List<Order> ordersToMove = new System.Collections.Generic.List<Order>();
                    foreach (GridDataItem draggedItem in e.DraggedItems)
                    {
                        Order tmpOrder = GetOrder(pendingOrders, (int)draggedItem.GetDataKeyValue("OrderId"));
                        if (tmpOrder != null)
                            ordersToMove.Add(tmpOrder);
                    }
 
                    foreach (Order orderToMove in ordersToMove)
                    {
                        pendingOrders.Remove(orderToMove);
                        pendingOrders.Insert(destinationIndex, orderToMove);
                    }
                    PendingOrders = pendingOrders;
                    grdPendingOrders.Rebind();
 
                    int destinationItemIndex = destinationIndex - (grdPendingOrders.PageSize * grdPendingOrders.CurrentPageIndex);
                    e.DestinationTableView.Items[destinationItemIndex].Selected = true;
                }
            }
        }
    }
 
    private static Order GetOrder(System.Collections.Generic.IEnumerable<Order> ordersToSearchIn, int orderId)
    {
        foreach (Order order in ordersToSearchIn)
        {
            if (order.OrderID == orderId)
            {
                return order;
            }
        }
        return null;
    }
 
    protected void grdShippedOrders_RowDrop(object sender, GridDragDropEventArgs e)
    {
        if (!string.IsNullOrEmpty(e.HtmlElement) && e.HtmlElement == "trashCan")
        {
            System.Collections.Generic.IList<Order> shippedOrders = ShippedOrders;
            bool deleted = false;
            foreach (GridDataItem draggedItem in e.DraggedItems)
            {
                Order tmpOrder = GetOrder(shippedOrders, (int)draggedItem.GetDataKeyValue("OrderId"));
 
                if (tmpOrder != null)
                {
                    shippedOrders.Remove(tmpOrder);
                    deleted = true;
                }
            }
            if (deleted)
            {
                DialogService.ShowMessage("Deleted");
            }
            ShippedOrders = shippedOrders;
            grdShippedOrders.Rebind();
        }
    }
 
    #region Nested type: Order
 
    protected class Order
    {
        private string _companyName;
        private string _customerId;
        private int _orderId;
        private string _date;
 
        public Order(int orderId, string customerId, string companyName, string requiredDate)
        {
            _orderId = orderId;
            _customerId = customerId;
            _companyName = companyName;
            _date = requiredDate;
        }
 
        public int OrderID
        {
            get { return _orderId; }
        }
 
        public string CustomerID
        {
            get { return _customerId; }
        }
 
        public string Company
        {
            get { return _companyName; }
        }
 
        public string Date
        {
            get { return _date; }
        }
    }
 
    #endregion
  
</script>
 
              
   

The complete server error is:

2010-12-13 11:50:10,491 ERROR Global - Unhandled exception.
System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: ItemHierarchicalIndex
   at Telerik.Web.UI.GridItemCollection.get_Item(String hierarchicalIndex)
   at Telerik.Web.UI.GridDataItemCollection.get_Item(String hierarchicalIndex)
   at Telerik.Web.UI.RadGrid.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Maria Ilieva
Telerik team
 answered on 16 Dec 2010
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?