Telerik Forums
UI for ASP.NET AJAX Forum
2 answers
103 views
I am having issues when I use radUpload in the radGrid, I can't insert new records when I use radUpload.

I am using radTabs and Multipage and .ascx files. My radGrid is on user control file.
My code is below

<telerik:RadCodeBlock runat="server" ID="RadCodeBlock1">
 
        <script type="text/javascript">
            var uploadId;
            var AuthorImagesListId;
            //on insert and update buttons click temporarily disables ajax to perform upload actions
            function conditionalPostback(sender, e) {
                var theRegexp = new RegExp("\.UpdateButton$|\.PerformInsertButton$", "ig");
                if (e.EventTarget.match(theRegexp)) {
                    var upload = $find(uploadId);
 
                    //AJAX is disabled only if file is selected for upload
                    if (upload.getFileInputs()[0].value != "") {
                        e.set_enableAjax(false);
                    }
                }
            }
 
        </script>
 
    </telerik:RadCodeBlock
 
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadGrid1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                        <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" />
                    </UpdatedControls>
                </telerik:AjaxSetting>        
            </AjaxSettings>
        </telerik:RadAjaxManager>
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
 
 <telerik:radprogressmanager id="RadProgressManager1" runat="server" />
 
             
         
<telerik:RadGrid ID="RadGrid1" runat="server" AllowAutomaticDeletes="True"
    AllowAutomaticInserts="True" AllowAutomaticUpdates="True" AllowPaging="True"
    AutoGenerateColumns="False" DataSourceID="SqlDataSource1" GridLines="None"
    ShowStatusBar="True" Skin="Hay" AllowSorting="True">
 
    <PagerStyle Mode="NextPrevAndNumeric" />
    <GroupingSettings CaseSensitive="False"></GroupingSettings>
     <%--DOUBLE CLICKING ON GRIDVIEW ROW ACTIVATES THE EDIT ROW MODE--%>          
    <ClientSettings>
                <ClientEvents OnRowDblClick="RowDblClick" />
    </ClientSettings>
    <GroupingSettings CaseSensitive="False" />
    <ClientSettings AllowRowsDragDrop="True">
<ClientEvents OnRowDblClick="RowDblClick"></ClientEvents>
    </ClientSettings>
 
 
<MasterTableView Width="100%" CommandItemDisplay="TopAndBottom" DataKeyNames="nauhaID" DataSourceID="SqlDataSource1" HorizontalAlign="NotSet" AutoGenerateColumns="false" >
    <Columns>
 
        <telerik:GridEditCommandColumn ButtonType="ImageButton" HeaderText="Edit "
            UniqueName="EditCommandColumn1">
            <ItemStyle CssClass="MyImageButton" />
        </telerik:GridEditCommandColumn>
 
        <telerik:GridBoundColumn DataField="title"
            HeaderText="Nauha Title" SortExpression="title" ColumnEditorID="GridTxtboxTemp"
            UniqueName="title">
        </telerik:GridBoundColumn>
 
         
        <telerik:GridDropDownColumn DataField="areaID" DataSourceID="SqlDataSource2"
            HeaderText="Area Name" ListTextField="areaName" ListValueField="areaID"
            UniqueName="column1" ColumnEditorID="GridDropDownColumnEditor1">
        </telerik:GridDropDownColumn>
 
        <telerik:GridBoundColumn DataField="author" HeaderText="author" ColumnEditorID="GridTxtboxTemp" Visible="false"
            SortExpression="author" UniqueName="author">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="lyrics" HeaderText="lyrics" Visible="false"
            SortExpression="lyrics" UniqueName="lyrics">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="reciter" HeaderText="reciter" ColumnEditorID="GridTxtboxTemp"  Visible="false"
            SortExpression="reciter" UniqueName="reciter">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="year" DataType="System.Int16"
            HeaderText="year" SortExpression="year" UniqueName="year">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="format" HeaderText="format"
            SortExpression="format" UniqueName="format">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="duration" DataType="System.TimeSpan" 
            HeaderText="duration" SortExpression="duration" UniqueName="duration">
        </telerik:GridBoundColumn>
 
        <telerik:GridBoundColumn DataField="size" HeaderText="size"
            SortExpression="size" UniqueName="size">
        </telerik:GridBoundColumn>
 
        <telerik:GridBoundColumn DataField="tags" HeaderText="tags" SortExpression="tags" Visible="false"
            UniqueName="tags">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="counter" DataType="System.Int32"
            HeaderText="counter" SortExpression="counter" UniqueName="counter">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="uploader" HeaderText="uploader"
            SortExpression="uploader" UniqueName="uploader">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="date" HeaderText="date" DataFormatString="{0:d}" 
            SortExpression="date" UniqueName="date" DataType="System.DateTime">
        </telerik:GridBoundColumn>
        <telerik:GridCheckBoxColumn DataField="Discontinued" DataType="System.Boolean"
            HeaderText="Discontinued" SortExpression="Discontinued"
            UniqueName="Discontinued" EditFormColumnIndex="1">
        </telerik:GridCheckBoxColumn>
 
         
        <%--TEMPLATE COLUMN FOR UPLOADING--%>
        <telerik:GridTemplateColumn DataField="url" HeaderText="URL New"
            SortExpression="url" UniqueName="urlUpload">
            <EditItemTemplate>
                <telerik:RadUpload ID="RadUpload1" Runat="server" InitialFileInputsCount="1" MaxFileInputsCount="1" maxfilesize="1000000"
                    ControlObjectsVisibility="None" >
                </telerik:RadUpload>
            </EditItemTemplate>
 
            <ItemTemplate>
                <asp:HyperLink ID="HyperLink1" runat="server"
                    NavigateUrl='<%# Eval("url") %>'
                    Text='<%# Eval("title") %>'></asp:HyperLink>
            </ItemTemplate>
        </telerik:GridTemplateColumn>
 
        
       
         
        <telerik:GridButtonColumn ConfirmText=" Are you sure you want to Delete this Nauha?" ConfirmDialogType="RadWindow"
                        ConfirmTitle="Delete" ButtonType="ImageButton"
            CommandName="Delete" Text="Delete"
                        UniqueName="DeleteColumn" HeaderText="Delete">
        </telerik:GridButtonColumn>
 
       
 
 
    </Columns>
     <%--RECORD EDIT/INSERT OPTIONS--%>
<EditFormSettings>
     
 
 
    <EditColumn UniqueName="EditCommandColumn1"></EditColumn>
    <EditColumn ButtonType="ImageButton" InsertText="Insert Order" UpdateText="Update record"
                        UniqueName="EditCommandColumn1" CancelText="Cancel edit">
    </EditColumn>
</EditFormSettings>
</MasterTableView>
   <%--DOUBLE CLICKING ON GRIDVIEW ROW ACTIVATES THE EDIT ROW MODE--%>          
    <ClientSettings>
                <ClientEvents OnRowDblClick="RowDblClick" />
    </ClientSettings>
</telerik:RadGrid>
<telerik:GridTextBoxColumnEditor ID="GridTxtboxTemp" runat="server" TextBoxStyle-Width="300px" />
<telerik:GridDropDownListColumnEditor ID="GridDropDownColumnEditor1" runat="server" DropDownStyle-Width="200px" />
 
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
    ConnectionString="<%$ ConnectionStrings:muharramConnectionString %>"
    SelectCommand="SELECT * FROM [AreaName]"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConflictDetection="CompareAllValues"
    ConnectionString="<%$ ConnectionStrings:muharramConnectionString %>"
    DeleteCommand="DELETE FROM [Nauha] WHERE [nauhaID] = @original_nauhaID AND [title] = @original_title AND (([author] = @original_author) OR ([author] IS NULL AND @original_author IS NULL)) AND (([lyrics] = @original_lyrics) OR ([lyrics] IS NULL AND @original_lyrics IS NULL)) AND (([reciter] = @original_reciter) OR ([reciter] IS NULL AND @original_reciter IS NULL)) AND (([year] = @original_year) OR ([year] IS NULL AND @original_year IS NULL)) AND (([format] = @original_format) OR ([format] IS NULL AND @original_format IS NULL)) AND (([duration] = @original_duration) OR ([duration] IS NULL AND @original_duration IS NULL)) AND (([size] = @original_size) OR ([size] IS NULL AND @original_size IS NULL)) AND (([url] = @original_url) OR ([url] IS NULL AND @original_url IS NULL)) AND (([tags] = @original_tags) OR ([tags] IS NULL AND @original_tags IS NULL)) AND (([counter] = @original_counter) OR ([counter] IS NULL AND @original_counter IS NULL)) AND (([uploader] = @original_uploader) OR ([uploader] IS NULL AND @original_uploader IS NULL)) AND (([date] = @original_date) OR ([date] IS NULL AND @original_date IS NULL)) AND (([areaID] = @original_areaID) OR ([areaID] IS NULL AND @original_areaID IS NULL)) AND (([Discontinued] = @original_Discontinued) OR ([Discontinued] IS NULL AND @original_Discontinued IS NULL))"
    InsertCommand="INSERT INTO [Nauha] ([title], [author], [lyrics], [reciter], [year], [format], [duration], [size], [url], [tags], [counter], [uploader], [date], [areaID], [Discontinued]) VALUES (@title, @author, @lyrics, @reciter, @year, @format, @duration, @size, @url, @tags, @counter, @uploader, @date, @areaID, @Discontinued)"
    OldValuesParameterFormatString="original_{0}"
    SelectCommand="SELECT * FROM [Nauha] ORDER BY [areaID]"
     
    UpdateCommand="UPDATE [Nauha] SET [title] = @title, [author] = @author, [lyrics] = @lyrics, [reciter] = @reciter, [year] = @year, [format] = @format, [duration] = @duration, [size] = @size, [url] = @url, [tags] = @tags, [counter] = @counter, [uploader] = @uploader, [date] = @date, [areaID] = @areaID, [Discontinued] = @Discontinued WHERE [nauhaID] = @original_nauhaID AND [title] = @original_title AND (([author] = @original_author) OR ([author] IS NULL AND @original_author IS NULL)) AND (([lyrics] = @original_lyrics) OR ([lyrics] IS NULL AND @original_lyrics IS NULL)) AND (([reciter] = @original_reciter) OR ([reciter] IS NULL AND @original_reciter IS NULL)) AND (([year] = @original_year) OR ([year] IS NULL AND @original_year IS NULL)) AND (([format] = @original_format) OR ([format] IS NULL AND @original_format IS NULL)) AND (([duration] = @original_duration) OR ([duration] IS NULL AND @original_duration IS NULL)) AND (([size] = @original_size) OR ([size] IS NULL AND @original_size IS NULL)) AND (([url] = @original_url) OR ([url] IS NULL AND @original_url IS NULL)) AND (([tags] = @original_tags) OR ([tags] IS NULL AND @original_tags IS NULL)) AND (([counter] = @original_counter) OR ([counter] IS NULL AND @original_counter IS NULL)) AND (([uploader] = @original_uploader) OR ([uploader] IS NULL AND @original_uploader IS NULL)) AND (([date] = @original_date) OR ([date] IS NULL AND @original_date IS NULL)) AND (([areaID] = @original_areaID) OR ([areaID] IS NULL AND @original_areaID IS NULL)) AND (([Discontinued] = @original_Discontinued) OR ([Discontinued] IS NULL AND @original_Discontinued IS NULL))">
    <DeleteParameters>
        <asp:Parameter Name="original_nauhaID" Type="Int32" />
        <asp:Parameter Name="original_title" Type="String" />
        <asp:Parameter Name="original_author" Type="String" />
        <asp:Parameter Name="original_lyrics" Type="String" />
        <asp:Parameter Name="original_reciter" Type="String" />
        <asp:Parameter Name="original_year" Type="Int16" />
        <asp:Parameter Name="original_format" Type="String" />
        <asp:Parameter DbType="Time" Name="original_duration" />
        <asp:Parameter Name="original_size" Type="String" />
        <asp:Parameter Name="original_url" Type="String" />
        <asp:Parameter Name="original_tags" Type="String" />
        <asp:Parameter Name="original_counter" Type="Int32" />
        <asp:Parameter Name="original_uploader" Type="String" />
        <asp:Parameter Name="original_date" Type="DateTime" />
        <asp:Parameter Name="original_areaID" Type="Int32" />
        <asp:Parameter Name="original_Discontinued" Type="Boolean" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="title" Type="String" />
        <asp:Parameter Name="author" Type="String" />
        <asp:Parameter Name="lyrics" Type="String" />
        <asp:Parameter Name="reciter" Type="String" />
        <asp:Parameter Name="year" Type="Int16" />
        <asp:Parameter Name="format" Type="String" />
        <asp:Parameter DbType="Time" Name="duration" />
        <asp:Parameter Name="size" Type="String" />
        <asp:Parameter Name="url" Type="String" />
        <asp:Parameter Name="tags" Type="String" />
        <asp:Parameter Name="counter" Type="Int32" />
        <asp:Parameter Name="uploader" Type="String" />
        <asp:Parameter Name="date" Type="DateTime" />
        <asp:Parameter Name="areaID" Type="Int32" />
        <asp:Parameter Name="Discontinued" Type="Boolean" />
    </InsertParameters>
    <UpdateParameters>
        <asp:Parameter Name="title" Type="String" />
        <asp:Parameter Name="author" Type="String" />
        <asp:Parameter Name="lyrics" Type="String" />
        <asp:Parameter Name="reciter" Type="String" />
        <asp:Parameter Name="year" Type="Int16" />
        <asp:Parameter Name="format" Type="String" />
        <asp:Parameter DbType="Time" Name="duration" />
        <asp:Parameter Name="size" Type="String" />
        <asp:Parameter Name="url" Type="String" />
        <asp:Parameter Name="tags" Type="String" />
        <asp:Parameter Name="counter" Type="Int32" />
        <asp:Parameter Name="uploader" Type="String" />
        <asp:Parameter Name="date" Type="DateTime" />
        <asp:Parameter Name="areaID" Type="Int32" />
        <asp:Parameter Name="Discontinued" Type="Boolean" />
        <asp:Parameter Name="original_nauhaID" Type="Int32" />
        <asp:Parameter Name="original_title" Type="String" />
        <asp:Parameter Name="original_author" Type="String" />
        <asp:Parameter Name="original_lyrics" Type="String" />
        <asp:Parameter Name="original_reciter" Type="String" />
        <asp:Parameter Name="original_year" Type="Int16" />
        <asp:Parameter Name="original_format" Type="String" />
        <asp:Parameter DbType="Time" Name="original_duration" />
        <asp:Parameter Name="original_size" Type="String" />
        <asp:Parameter Name="original_url" Type="String" />
        <asp:Parameter Name="original_tags" Type="String" />
        <asp:Parameter Name="original_counter" Type="Int32" />
        <asp:Parameter Name="original_uploader" Type="String" />
        <asp:Parameter Name="original_date" Type="DateTime" />
        <asp:Parameter Name="original_areaID" Type="Int32" />
        <asp:Parameter Name="original_Discontinued" Type="Boolean" />
    </UpdateParameters>
</asp:SqlDataSource>

Code Behind

Protected Sub RadGrid1_ItemDataBound(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemDataBound
         
        If TypeOf e.Item Is GridEditableItem And e.Item.IsInEditMode Then
            Dim upload As RadUpload = e.Item.FindControl("RadUpload1")
            Dim script As String = String.Format("uploadId = '{0}';", upload.ClientID)
            ScriptManager.RegisterStartupScript(Page, Page.[GetType](), "initialize", script, True)
        End If
End Sub
 
 
 Protected Sub RadGrid1_ItemInserted(source As Object, e As Telerik.Web.UI.GridInsertedEventArgs) Handles RadGrid1.ItemInserted
        Dim item As GridEditFormInsertItem = DirectCast(e.Item, GridEditFormInsertItem)
        Dim uploader As RadUpload = TryCast(e.Item.FindControl("RadUpload1"), RadUpload)
        Dim myUploadedFile As UploadedFile = uploader.UploadedFiles(0)
        Dim fileName As String = myUploadedFile.FileName
 
        'Gets the uploaded file extension
        Dim fileExt As String
        fileExt = System.IO.Path.GetExtension(myUploadedFile.FileName).ToLower
 
        myUploadedFile.SaveAs("~/Uploads/" & fileName)
         
    End Sub
Radoslav
Telerik team
 answered on 14 Nov 2012
8 answers
2.2K+ views

Might anyone be able to suggest why I am geting this error when I host my web application in IIS?
If I use the Visual Studio Dev server, the page loads with a scheduler.
All I do is create a virtual directory for my app in IIS and I get the following error...

Any hep would be greatly appreciated. Thanks.

The remote server returned an error: (401) Unauthorized.

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.Net.WebException: The remote server returned an error: (401) Unauthorized.

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:

[WebException: The remote server returned an error: (401) Unauthorized.]
   System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request) +302
   System.Net.WebClient.UploadString(Uri address, String method, String data) +170
   System.Net.WebClient.UploadString(String address, String method, String data) +35
   Telerik.Web.UI.SchedulerWebServiceClient.GetResources() +460

[Exception: An error occurred while requesting resources from the web service. Server responded with: {"Message":"Authentication failed.","StackTrace":null,"ExceptionType":"System.InvalidOperationException"}]
   Telerik.Web.UI.SchedulerWebServiceClient.GetResources() +622
   Telerik.Web.UI.RadScheduler.BindResourcesFromWebService() +95
   Telerik.Web.UI.RadScheduler.PerformSelect() +122
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
   Telerik.Web.UI.RadScheduler.EnsureDataBound() +51
   Telerik.Web.UI.RadScheduler.CreateChildControls(Boolean bindFromDataSource) +63
   Telerik.Web.UI.RadScheduler.CreateChildControls() +10
   System.Web.UI.Control.EnsureChildControls() +87
   System.Web.UI.Control.PreRenderRecursiveInternal() +44
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842


        <telerik:RadScheduler    ID="RadScheduler1"   
                                            runat="server"   
                                            Height=""   
                                            HoursPanelTimeFormat="htt"   
                                            ValidationGroup="RadScheduler1"   
                                            StartEditingInAdvancedForm="false"   
                                            Skin="Office2007">  
            <WebServiceSettings Path="SchedulerWebService.asmx" ResourcePopulationMode="ServerSide" /> 
        </telerik:RadScheduler> 

Plamen
Telerik team
 answered on 14 Nov 2012
3 answers
636 views
Hi,
I have the following environment:  VS 2010, Asp.Net, Visual Basic and Telerik controls.

I started this project by trying to implement this solution with an unbound Radgrid, but then the Radgrid html code was not sent to the client in the page source file, I decided to use the bound Radgrid method.
Here is what i'm trying now:
I created an .aspx page that has an empty (no columns defined) Radgrid control bound to a datasource that I'm populating in the Onclick event code of a button using the following code:

    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click

            SqlDataSource1.SelectCommand = "exec CreateForecastEntry 'F2012v1', 'USA-ILMO-T1' "
            grdForecast.DataBind()

    End Sub


The datasource query returns a dataset with a variable number of columns (months) depending on some user settings.  I want the user to be able to edit the grid columns, so I want to add GridTemplateColumns with Textboxes for each of the columns.

The grid should look similar to this:

the Query returns in this case 3 columns, which I want to transform into 5 columns like this:

Column names:   Item | January | February | T_January | T_February
Column types:  GridBoundColumn | GridBoundColumn | GridBoundColumn | GridTemplateColumn (textbox) | GridTemplateColumn (textbox)

Note:  The number of months will be variable.

I have tried using the following code to create the columns, but it does not create the appropriate number of columns, and it creates them at the beginning of the grid:

Protected Sub grdForecast_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles grdForecast.ItemCreated
        Dim tc As New GridTemplateColumn

        tc.HeaderText = "qty_" & e.Item.UniqueID
        tc.UniqueName = "qty1_" & e.Item.UniqueID
        tc.ItemTemplate = New MyTemplate(tc.UniqueName)
        grdForecast.MasterTableView.Columns.Add(tc)

    End Sub
    Private Class MyTemplate
        Implements ITemplate
        Protected textBox As TextBox
        Private colname As String

        Public Sub New(ByVal cName As String)
            MyBase.New()
            colname = cName
        End Sub

        Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements ITemplate.InstantiateIn
            textBox = New TextBox
            textBox.ID = "abc"
            container.Controls.Add(textBox)
        End Sub
    End Class


This code will create a random number of GridTemplateColumns and I'm able to see them in the browser page source code, but I cannot access the textboxes content using this code:

    Protected Sub Button2_Click(sender As Object, e As System.EventArgs) Handles Button2.Click
        Dim quantity As TextBox
        For Each row As GridDataItem In grdForecast.Items
             quantity = CType(row.FindControl("abc"), TextBox)
            quantity = Nothing
        Next
    End Sub

Any insight on what I'm doing wrong would be appreciated. Thanks
Eduardo
Shinu
Top achievements
Rank 2
 answered on 14 Nov 2012
1 answer
61 views
<telerik:RadListView ID="rlv_telephone" runat="server" AllowPaging="true" ItemPlaceholderID="pnl_telephone" DataKeyNames="telephone_id">
 
<telerik:RadDataPager ID="rdp_account_telephone" runat="server" PagedControlID="rlv_telephone"
                                                    PageSize="2" Font-Size="10px">

    Private Sub rlv_telephone_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadListViewItemEventArgs) Handles rlv_telephone.ItemDataBound
        If TypeOf (e.Item) Is RadListViewDataItem Then
            Dim item = TryCast(e.Item, RadListViewDataItem)
            Dim datakey As DataKey = Me.rlv_telephone.DataKeyValues(item.DataItemIndex)
            TryCast(item.FindControl("btn_edittelephone"), RadButton).Attributes.Add("onclick", "openTelephone('" & datakey("telephone_id") & "')")
        End If
    End Sub  
 
Private Sub rlv_telephone_NeedDataSource(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadListViewNeedDataSourceEventArgs) Handles rlv_telephone.NeedDataSource
            GetTelephones()
    End Sub
 
    Protected Sub GetTelephones(Optional ByVal bind As Boolean = False)
        Me.rlv_telephone.DataSource = fe_telephone.functions.get_fe_telephone_list_by_account_id(this_account_id)
 
        If bind Then
            Me.rlv_telephone.DataBind()
        End If
    End Sub


When the page first loads its fine. When I change page it throws an error on Me.rlv_telephone.DataKeyValues(item.DataItemIndex) stating System.ArgumentOutOfRangeException.






Andrey
Telerik team
 answered on 14 Nov 2012
5 answers
329 views
Hi!

I have a question about setting focus on a radtextbox inside a radpanelbar. My code looks like this:
<telerik:RadPanelBar ID="RadPanelBar" runat="server" Width="100%" OnClientItemExpand="onItemExpand">
    <Items>
      <telerik:RadPanelItem Text="Zoeken" Value="Search">
        <ContentTemplate>
        <asp:Panel ID="ExamSearchPanel" runat="server" DefaultButton="SearchButton">
          <table>
            <tr>
              <td>
                <asp:Table runat="server">
                  <asp:TableRow ID="TrainingCompanyRow" runat="server">
                    <asp:TableCell>Opleider:</asp:TableCell>
                    <asp:TableCell><telerik:RadTextBox ID="TrainingCompanyTextBox" runat="server" /></asp:TableCell>
                  </asp:TableRow>

OnClientItemExpand, I want to set focus to the TrainingCompanyTextBox control with javascript. I've tried different ways of setting focus to the contorl, but i can't find the solution.

How can I do this?
Princy
Top achievements
Rank 2
 answered on 14 Nov 2012
1 answer
100 views
Hello, I'm using RadGrid and I need to remove in my footer row the follow Text "Sum, Count, Avg" and I need to show only the numbers.

How I do this?
Shinu
Top achievements
Rank 2
 answered on 14 Nov 2012
4 answers
172 views
Hello everybody,

I am experiencing an issue with the RadDatePicker's calendar lookup button displaying through an ASP.Net menu.

The RadDatePicker is defined like this:

<td>
  <telerik:RadDatePicker runat="server" ID="PeriodStartCalendar" />
</td>

A screenshot of the page can be seen here:
http://i49.tinypic.com/2n1rf3l.png

I am using the Telerik ASP.Net AJAX Q2 2012 controls, ASP.Net 4.0 Framework (Visual Studio 2008) and Internet Explorer 8.0

Are there any properties that can control the transparency of the calendar lookup button or should I be looking at the ASP.Net Menu control instead?

Thanks for your time.
Allan
Top achievements
Rank 1
 answered on 14 Nov 2012
1 answer
117 views
Basically i am using a custom user control named DashboardGrid. We can specify database name adn query in it and the grid gets populated.

.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DashBoardGrid.ascx.cs"
    Inherits="WebUserControlTest.WebUserControl1" %>
 
 
<script type="text/javascript">
    function pageLoad(sender, eventArgs)
    {
 
 
    }
</script>
 
<telerik:RadGrid ID="DashboardGrid" runat="server" PageSize="8" AllowPaging="true" Width="60%"
    PagerStyle-AlwaysVisible="false" AllowFilteringByColumn="True" AllowSorting="True" OnNeedDataSource="DashGrid_NeedDataSource"
    CellSpacing="1" OnPageIndexChanged="DashboardGrid_PagingCommand" GridLines="None"
    OnSortCommand="DashboardGrid_SortCommand" PagerStyle-Mode="NextPrev" ClientIDMode="Static"
    GroupingEnabled="False" OnSelectedCellChanged="DashboardGrid_SelectedCellChanged1" PagerStyle-HorizontalAlign="Center" PagerStyle-VerticalAlign="Middle" SelectedItemStyle-VerticalAlign="Top" MasterTableView-PageSize="8">
    <MasterTableView AllowMultiColumnSorting="true" TableLayout="Fixed">
        <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
        <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
        </RowIndicatorColumn>
        <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column">
        </ExpandCollapseColumn>
        <EditFormSettings>
            <EditColumn FilterControlAltText="Filter EditCommandColumn column">
            </EditColumn>
        </EditFormSettings>
    </MasterTableView>
    <ClientSettings>
        <Selecting AllowRowSelect="true" />
    </ClientSettings>
    <FilterMenu EnableImageSprites="False">
    </FilterMenu>
</telerik:RadGrid>

the code behind has following important method (I can not post the whole code but trying post just the relevant)
C# code behind (.ascx.cs)

string QueryOrStoredProcedure, bool HasStoredProcedure and int DatabaseEnum are public properties (of the custom user
control)

PAGE_LOAD :

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadData();
                //DashboardGrid.ClientSettings.DataBinding.EnableCaching = true;
                DashboardGrid.DataBind();
            }
        }


string ConnectionString = string.Empty;
           string SelectQuery = string.Empty;
           if (!HasStoredProcedure)
               SelectQuery = QueryOrStoredProcedure;
 
           ConnectionStringSettingsCollection ConnctionStringCollection = ConfigurationManager.ConnectionStrings;
 
           if (ConnctionStringCollection != null)
           {
               foreach (ConnectionStringSettings connection in ConnctionStringCollection)
               {
                   if (string.Equals(connection.Name, "LocalConnectionString"))
                   {
                       ConnectionString = connection.ConnectionString;
                       if (!string.IsNullOrEmpty(DB 1) && !string.IsNullOrEmpty(DB 2) && !string.IsNullOrEmpty(DB 3) && !string.IsNullOrEmpty(DB 4) && !string.IsNullOrEmpty(DB 5) && ConnectionString.Contains("master"))
                       {
                           switch (DatabaseEnum)
                           {
                               case 1:
                                   ConnectionString = ConnectionString.Replace("master", DB 1);
                                   break;
                               case 2:
                                   ConnectionString = ConnectionString.Replace("master",  DB 2);
                                   break;
                               case 3:
                                   ConnectionString = ConnectionString.Replace("master",  DB 3);
                                   break;
                               case 4:
                                   ConnectionString = ConnectionString.Replace("master",  DB 4);
                                   break;
                               case 5:
                                   ConnectionString = ConnectionString.Replace("master",  DB 5);
                                   break;
 
                               default:
                                   ConnectionString = ConnectionString.Replace("master",  DB 6);
                                   break;
                           }
                       }
                       break;
                   }
               }
 
               SqlConnection Connection = new SqlConnection(ConnectionString);
               SqlDataAdapter Adapter = new SqlDataAdapter();
               DataSet DashboardGridDataSet = new DataSet();
               try
               {
                   Connection.Open();
                   if (Connection.State.ToString().ToLower() == "open")
                   {
                       Adapter.SelectCommand = new SqlCommand(SelectQuery, Connection);
                       Adapter.Fill(DashboardGridDataSet);
                   }
               }
               finally
               {
                   Connection.Close();
               }
               DataView DashboardGridDataView = DashboardGridDataSet.Tables[0].DefaultView;
               DashboardGrid.DataSource = DashboardGridDataView;
               Session["DashboardGridData"] = DashboardGridDataView;
               Session["GridPages"] = DashboardGrid.PageCount;
                
           }
       }

Below are my sorting and paging event handlers for the RadGrid:

protected void DashboardGrid_PagingCommand(object sender, Telerik.Web.UI.GridPageChangedEventArgs e)
{
    if (e.NewPageIndex < Convert.ToInt32(Session["GridPages"]) && e.NewPageIndex >= 0)
        DashboardGrid.CurrentPageIndex = e.NewPageIndex;
    DashboardGrid.Rebind();
}
 
protected void DashboardGrid_SortCommand(object sender, Telerik.Web.UI.GridSortCommandEventArgs e)
{
    DataView DashGridData = Session["DashboardGridData"] as DataView;
    if (DashGridData != null)
    {
        DashGridData.Sort = e.SortExpression + " " + GetSortDirection(e.SortExpression);
       // GetSortDirection() is some function that returns ASC & DESC alternatively
        DashboardGrid.DataSource = DashGridData;
        DashboardGrid.Rebind();
    }
}


Following is the way I am deploying the control:

<div id="GridShowCaseDivision" runat="server" style="width: 100%; position: absolute;
                height: 100%; right: 0; top: 10">
                <telerik:RadRotator ID="GridShowCaseRotator" runat="server" Width="60%" ItemHeight="100%"
                    Height="35%" WrapFrames="false" ItemWidth="50%" RegisterWithScriptManager="true"
                    RotatorType="Buttons" Visible="true">
                    <Items>
                        <telerik:RadRotatorItem Width="15%">
                            <ItemTemplate>
                                <Dashboard:IconGrid runat="server" ID="EventGrid" DatabaseEnum="4" HasStoredProcedure="false"
                                    QueryOrStoredProcedure=" VALID AND TESTED  SQL QUERY" />
                            </ItemTemplate>
                        </telerik:RadRotatorItem>
                    </Items>
                </telerik:RadRotator>
            </div>

MY QUESTION IS, IF I USE THIS USER CONTROL JUST ONE TIME IT WORKS FINE BUT IF I USE THE SAME CONTROL THE VERY NEXT TIME THAN PAGING/SORTING WILL THROW THIS json ERROR.

AS I HAVE THE PAGING FOOTER I DO SEE PAGE x OF y, ITEMS p TO q OF r - CORRECTLY
Aarsh
Top achievements
Rank 1
 answered on 13 Nov 2012
3 answers
146 views
Hi, I'm having a problem with the RadGrid that has 2 levels of hierarchy, all bound in code behind (using NeedDataSource and DetailTableDataBind).  Both levels have InPlace editing and the top level works correctly when I save it, it goes back into read-only mode using the RadGrid.MasterTableView.ClearEditItems() function.  I try and do the same thing for the lower level one and whatever I do it stays in Edit Mode.  I've tried the same as above, I've tried editItem.OwnerTableView.ClearEditItems() in the UpdateCommand function (which is where the top level table does it when it works).  I have looked through forums trying different suggestions such as setting AllowAutomaticUpdates, Inserts etc. to false (though from what I understand that's the default value anyway).  

The row even saves and everything it's just that it doesn't revert back to non-edit mode.  I have noticed when I step through that the list of edit items in the child TableView stays at one item even after the ClearEditItems is called on it, while the MasterTableView seems to behave as expected when ClearEditItems is called on it.  Could this be a limitation of Telerik or am I doing something wrong?

Here's my mark-up, can anyone see what I may have done to cause this?

<telerik:RadGrid ID="gvMain" runat="server" AutoGenerateColumns="false" Skin="Metro_JS" EnableEmbeddedSkins="false" AllowSorting="true" AllowAutomaticUpdates="false" AllowAutomaticInserts="false" AllowAutomaticDeletes="false">
    <ClientSettings EnableRowHoverStyle="true" AllowKeyboardNavigation="true">
        <ClientEvents OnKeyPress="GridKeyPress" OnCommand="onEditCommand" />
        <KeyboardNavigationSettings AllowSubmitOnEnter="true" AllowActiveRowCycle="true" />
    </ClientSettings>
    <MasterTableView EnableNoRecordsTemplate="true" DataKeyNames="ID" AllowCustomSorting="true" EditMode="InPlace" Name="Discount">
        <HeaderStyle CssClass="StandardText" />
        <ItemStyle CssClass="Clickable" />
        <AlternatingItemStyle CssClass="Clickable" />
        <NoRecordsTemplate>
            <asp:Panel ID='pnlEmpty' runat='server' style='position: relative; width: 100%; height: 30px;'>
                <asp:Label ID='lblEmpty' runat='server' Text='No Results Found' style='font-weight: bold; position: absolute; top: 10px; left: 10px;' CssClass='StandardText' />
            </asp:Panel>                       
        </NoRecordsTemplate>
        <Columns>
            <telerik:GridBoundColumn DataField="Name" HeaderText="Name" UniqueName="DiscountName" MaxLength="100" ItemStyle-Width="600px"></telerik:GridBoundColumn>
            <telerik:GridTemplateColumn HeaderText="Start Date" ItemStyle-Width="160px">
                <ItemTemplate>
                    <asp:Label ID='lblStartDate' runat='server' Text='' CssClass='StandardText' />
                </ItemTemplate>
                <EditItemTemplate>
                    <telerik:RadDatePicker ID="rdpStartDate" runat="server" Width="150px">
                    </telerik:RadDatePicker>
                    <asp:RequiredFieldValidator ID="valAmount" ControlToValidate="rdpStartDate" runat="server" Text="*" SetFocusOnError="True"
                        Display="Dynamic" EnableViewState="true" ErrorMessage="Please enter a start date"></asp:RequiredFieldValidator>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridTemplateColumn HeaderText="End Date" ItemStyle-Width="160px">
                <ItemTemplate>
                    <asp:Label ID='lblFinishDate' runat='server' Text='' CssClass='StandardText' />
                </ItemTemplate>
                <EditItemTemplate>
                    <telerik:RadDatePicker ID="rdpFinishDate" runat="server" Width="150px">
                    </telerik:RadDatePicker>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" ItemStyle-CssClass="EditColumn"
                UpdateImageUrl="../Images/tick-icon.png" CancelImageUrl="../Images/arrow-undo-icon.png" InsertImageUrl="../Images/tick-icon.png" />
            <telerik:GridTemplateColumn ItemStyle-CssClass="DeleteColumn" UniqueName="DeleteColumn">
                <ItemTemplate>
                    <asp:ImageButton ID="imgDelete" runat="server" ImageUrl="~/Images/cross.png" CommandName="Delete" ToolTip="Delete"
                    OnClientClick="return confirm('Are you sure you want to delete this Discount?');" CommandArgument='<%# Eval("ID") %>' />
                </ItemTemplate>
            </telerik:GridTemplateColumn>
        </Columns>
        <DetailTables>
            <telerik:GridTableView AllowAutomaticUpdates="false" AllowAutomaticInserts="false" AllowAutomaticDeletes="false" DataKeyNames="ID" Name="DiscountItem" ShowHeader="false" EditMode="InPlace" AllowPaging="true" PagerStyle-Position="Bottom" AllowCustomPaging="true">
                <SortExpressions>
                    <telerik:GridSortExpression FieldName="SortOrder" SortOrder="Ascending" />
                </SortExpressions>
                <ItemStyle CssClass="Clickable" />
                <AlternatingItemStyle CssClass="Clickable" />
                <NoRecordsTemplate>
                    <asp:Panel ID='pnlEmpty' runat='server' style='position: relative; width: 100%; height: 30px;'>
                        <asp:Label ID='lblEmpty' runat='server' Text='No Results Found' style='font-weight: bold; position: absolute; top: 10px; left: 10px;' CssClass='StandardText' />
                    </asp:Panel>   
                </NoRecordsTemplate>
                <Columns>
                    <telerik:GridTemplateColumn ItemStyle-Width="750px">
                        <ItemTemplate>
                            <asp:Panel ID='pnlMessage' runat='server' Width="750px" Height="20px">
                                <asp:Label ID="lblCustomerClause" runat="server" Text="When [Customer] orders "></asp:Label>
                                <asp:Label ID="lblQuantityClause" runat="server" Text="between [Min] and [Max] "></asp:Label>
                                <asp:Label ID="lblItemClause" runat="server" Text="of [Item] "></asp:Label>
                                <asp:Label ID="lblPriceClause" runat="server" Text="the price is [discount_type][discount_value]. "></asp:Label>
                            </asp:Panel>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:Panel ID='pnlEditMessage' runat='server' Width="750px">
                                <asp:Label ID="lblCustomerClause1" runat="server" Text="When " style='position: relative; top: 3px;'></asp:Label>
                                <telerik:RadComboBox ID="cboCustomerOrGroup" runat="server" Skin="Metro_JobSync" EnableEmbeddedSkins="false" OnClientSelectedIndexChanged="selectCustomerOrGroup">
                                    <Items>
                                        <telerik:RadComboBoxItem Text="Customer" Value="C" />
                                        <telerik:RadComboBoxItem Text="Customer Group" Value="G" />
                                    </Items>
                                </telerik:RadComboBox>
                                <asp:TextBox ID='txtCustomer' runat='server' style='width: 120px;' CssClass='StandardText txtCustomer' onkeydown='invalidateCustomerMain();' />
                                <ajax:AutoCompleteExtender runat='server' ID='acTxtCustomer' TargetControlID='txtCustomer' ServicePath='~/Ajax.asmx' ServiceMethod='SearchCustomer' MinimumPrefixLength='3' CompletionSetCount='10'
                                    CompletionInterval='1' CompletionListHighlightedItemCssClass='searchTextMouseOver' CompletionListItemCssClass='searchText' EnableCaching='false' OnClientItemSelected='gridCustomerClicked' FirstRowSelected='true'
                                    CompletionListCssClass='searchBox' />
                                <asp:TextBox ID='hidCustomerID' CssClass="hidCustomerID" style="display: none;" runat='server' Text='0'></asp:TextBox>
                                <asp:TextBox ID='txtCustomerDiscountGroup' runat='server' style='width: 120px;' CssClass='StandardText txtCustomerDiscountGroup' onkeydown='invalidateCustomerMain();' />
                                <ajax:AutoCompleteExtender runat='server' ID='acCustomerDiscountGroup' TargetControlID='txtCustomerDiscountGroup' ServicePath='~/Ajax.asmx' ServiceMethod='SearchCustomerDiscountGroup' MinimumPrefixLength='1' CompletionSetCount='10'
                                    CompletionInterval='1' CompletionListHighlightedItemCssClass='searchTextMouseOver' CompletionListItemCssClass='searchText' EnableCaching='false' FirstRowSelected='true'
                                    CompletionListCssClass='searchBox' />
                                <asp:Label ID="lblCustomerClause2" runat="server" Text=" orders " style='position: relative; top: 3px;'></asp:Label>
                                 
                                <telerik:RadComboBox ID="cboQuantityType" runat="server" Width="80px" Skin="Metro_JobSync" EnableEmbeddedSkins="false" OnClientSelectedIndexChanged="selectQuantityType">
                                    <Items>
                                        <telerik:RadComboBoxItem Text="up to" Value="<" />
                                        <telerik:RadComboBoxItem Text="at least" Value=">" />
                                        <telerik:RadComboBoxItem Text="between" Value="><" />
                                    </Items>
                                </telerik:RadComboBox>
                                 
                                <telerik:RadNumericTextBox runat="server" ID="txtMinQuantity" CssClass="txtMinQuantity" Width="60px"></telerik:RadNumericTextBox>
                                <asp:Label ID="lblQuantityClause2" runat="server" Text=" and " CssClass="lblQuantityClause2" style='position: relative; top: 3px;'></asp:Label>
                                <telerik:RadNumericTextBox runat="server" ID="txtMaxQuantity" CssClass="txtMaxQuantity" Width="60px"></telerik:RadNumericTextBox>                                      
                                 
                                <telerik:RadComboBox ID="cboItemOrCategory" runat="server" Width="140px" Skin="Metro_JobSync" EnableEmbeddedSkins="false" OnClientSelectedIndexChanged="selectItemOrCategory">
                                    <Items>
                                        <telerik:RadComboBoxItem Text="of item" Value="I" />
                                        <telerik:RadComboBoxItem Text="from item category" Value="C" />
                                    </Items>
                                </telerik:RadComboBox>
                                 
                                <asp:TextBox ID='txtItem' runat='server' style='width: 170px;' CssClass='StandardText txtItem' onkeydown='invalidateItemMain();' />
                                <ajax:AutoCompleteExtender runat='server' ID='acTxtItem' TargetControlID='txtItem' ServicePath='~/Ajax.asmx' ServiceMethod='SearchItemDistinctName' MinimumPrefixLength='3' CompletionSetCount='10'
                                    CompletionInterval='1' CompletionListHighlightedItemCssClass='searchTextMouseOver' CompletionListItemCssClass='searchText' EnableCaching='false' OnClientItemSelected='gridItemClicked' FirstRowSelected='true'
                                    CompletionListCssClass='searchBox' />
                                <asp:TextBox ID='hidItemID' CssClass='hidItemID' style="display: none;" runat='server' Text='0'></asp:TextBox>
         
                                <asp:Label ID="lblLocationClause" runat="server" Text=" from " CssClass="lblLocationClause" style='position: relative; top: 3px;'></asp:Label>
                                <telerik:RadComboBox ID="cboLocation" runat="server" Skin="Metro_JobSync" EnableEmbeddedSkins="false">
                                </telerik:RadComboBox>
                                 
                                <telerik:RadComboBox ID="cboItemCategory" runat="server" Width="312px" ShowToggleImage="True" AutoPostBack="true"
                                    Style="vertical-align: middle;" OnClientDropDownOpened="OnClientDropDownOpenedHandler"
                                    ExpandAnimation-Type="None" CollapseAnimation-Type="None" Skin="Metro_JobSync" EnableEmbeddedSkins="false">
                                    <ItemTemplate>
                                        <asp:Panel ID='pnlTreeView' runat='server' onclick='StopPropagation(event);'>
                                            <telerik:RadTreeView ID="tvItemCategory" runat="server" style='position: relative; width: 292px; z-index: 10; color: Black;' Skin="Metro_JobSync" EnableEmbeddedSkins="false">
                                            </telerik:RadTreeView>
                                        </asp:Panel>
                                    </ItemTemplate>
                                    <Items>
                                        <telerik:RadComboBoxItem Text="" CssClass="TreeViewWrapper" />
                                    </Items>
                                </telerik:RadComboBox>
                                 
                                <asp:Label ID="lblPriceClause" runat="server" Text="the price " style='position: relative; top: 3px;'></asp:Label>
                                 
                                <telerik:RadComboBox ID="cboDiscountType" runat="server" Width="170px" Skin="Metro_JobSync" EnableEmbeddedSkins="false">
                                    <Items>
                                        <telerik:RadComboBoxItem Text="is discounted by amount " Value="1" />
                                        <telerik:RadComboBoxItem Text="is discounted by percentage " Value="2" />
                                        <telerik:RadComboBoxItem Text="is set to" Value="3" />
                                    </Items>
                                </telerik:RadComboBox>      
                                <telerik:RadNumericTextBox runat="server" ID="txtDiscountValue" Width="60px"></telerik:RadNumericTextBox>
                            </asp:Panel>                               
                        </EditItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" ItemStyle-CssClass="EditColumn"
                        UpdateImageUrl="../Images/tick-icon.png" CancelImageUrl="../Images/arrow-undo-icon.png" InsertImageUrl="../Images/tick-icon.png" />
                    <telerik:GridTemplateColumn ItemStyle-CssClass="DeleteColumn" UniqueName="DeleteColumn" ItemStyle-Width="25px">
                        <ItemTemplate>
                            <asp:ImageButton ID="imgDelete" runat="server" ImageUrl="~/Images/cross.png" CommandName="Delete" ToolTip="Delete"
                            OnClientClick="return confirm('Are you sure you want to delete this Discount Item?');" CommandArgument='<%# Eval("ID") %>' />
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                </Columns>
            </telerik:GridTableView>
        </DetailTables>
    </MasterTableView>
</telerik:RadGrid>

Richard
Top achievements
Rank 1
 answered on 13 Nov 2012
4 answers
512 views
Hi,

I have a page with a few radcombo boxes and raddateinputs.

On the initial load of the page (when ispostBack is false) I set the initial value of a couple of the raddateinputs.

I select the combo box values and the raddate values and do a Response.redirect in the code behind for the submit button passing the values of the controls  to a new page in the querystring.  The new page functions fine.  from the new page i hit the back button.  the values I picked in the Combo boxes and raddateinputs appear in the respective controls UNTIL I actually click in each one of them and they revert immediately to the default values.  I set a breakpoint in page-load and it is not firing so the cached copy is being loaded.  why aren't the values staying with the controls?

If I don't click in them and submit the page again the values passed through are the default values rather than the values that are actually vivsible in the page.  

I thought it was an ajax issue, but removed the ajax manager from the page and still have them same problem.  I tried setting viewstate on the controls and the same issue arises.

Thanks,

Jonathan
Jonathan
Top achievements
Rank 1
 answered on 13 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?