Telerik Forums
UI for ASP.NET AJAX Forum
19 answers
616 views
Is there any way to have GridDateTimeColumn filtering work without having to custom code anything?  I get the nice datepicker, but it never works out of the box (I assume becasue of the time being part of the datetime type?)


sitefinitysteve
Top achievements
Rank 2
Iron
Iron
Veteran
 answered on 12 Apr 2012
3 answers
395 views
Hi!

We have a grid that contains a date-time column where we are displaying hours and minutes. We want to use only the date portion of the selected value for our filter, and on the SQL side of this, we are able to parse the value using the C# code below.

The problem we are seeing is that when we stick the data back into the grid, no rows are showing. We suspect the grid is filtering the data still on the date-time value as designated in the aspx code. Is there a way to accomplish this?

Thanks!

<telerik:GridDateTimeColumn DataField="AssignDate" DataFormatString="{0:MM/dd/yyyy hh:mm tt}"
                                HeaderText="Assign Date" PickerType="DatePicker" SortExpression="AssignDate"
                                UniqueName="AssignDate" />
 
 
 
 
if (filter.Contains("[AssignDate]"))
            {
                int index = filter.IndexOf("([AssignDate]");
                int firstQuote = filter.IndexOf("'", index);
                int lastQuote = filter.IndexOf("'", firstQuote + 1);
 
                string stringToExcise = filter.Substring(index, lastQuote - index + 2);
                string dateToParse = filter.Substring(firstQuote + 1, lastQuote - firstQuote - 1);
                DateTime dateTime = DateTime.Parse(dateToParse);
 
                assignDate = "(convert(varchar(10), [AssignDate], 101) = '" + dateTime.Month.ToString("0#") + "/" + dateTime.Day.ToString("0#") + "/" + dateTime.Year + "')";
 
            }


Michael O'Flaherty
Top achievements
Rank 2
 answered on 12 Apr 2012
4 answers
133 views
Hi,

I have a RadComboBox nested inside of a RadContextMenu.  When I select/change an option from the combobox, the combobox selects the item correctly, but then the RadContextMenu disappears as well.  How can I force the RadContextMenu to remain open after this selection?

Thanks for the help.

Steve
Steve
Top achievements
Rank 1
 answered on 12 Apr 2012
3 answers
317 views
I've been battling the best way to handle filters on a grid date field to get them to work properly.  The date/time is coming from an MSSQL database which the date fields have been populated with date and time.  I do not currently have anything special for the field column in the grid:

 

<telerik:GridDateTimeColumn datafield="ExportedDate" DataFormatString="{0:MM/dd/yyyy}" datatype="System.DateTime"
        
headertext="Exported"  sortexpression="ExportedDate" uniquename="EXPORTED" FilterControlWidth="75px">

 

 

    <HeaderStyle HorizontalAlign="Center" Width="90px"/>

 

 

    <ItemStyle HorizontalAlign="Right" Width="90px"/>

 

 

</telerik:GridDateTimeColumn>

What I have found is that the date will not work correctly on fields unless the data coming from the database has the time essentially set  to 00:00:00.  All the filtering is done by the specified date with the time set to midnight.

For example: if my date field from the database is 3/25/2009 06:30:12 and I'm filtering on the date 3/25/2009, then the following results ocurr:
        Comparison                        Expected Result        Actual Result
        --------------------------          -----------------------     --------------------
        EqualTo                              Match                        No match
        NotEqualTo                         No Match                   Match
        GreaterThan                       No Match                   Match
        LessThan                            No Match                   No Match
        GreaterThanOrEqualTo      Match                        Match
        LessThanOrEqualTo           Match                        No Match

As you can see, only 2 comparisons return results as expected.  It all stems around the issue with the time component being used in the comparison.

Work arounds include adding custom filtering, changing every database access procedure or call to remove the time component in the results, and limiting the filter functions to only what works.

None are very attractive when considering the extent of work involved.  This system that the Telerik controls are used was initially developed 10 years ag0 and has grown to have at one site alone, 300,000 registered users, hundreds of web pages, thousands of queries, and, needless to say, an extremely large amount of accumulated data.

I believe I shouldn't have to add code to make the date filter work as logically expected.  The filtering logic should automatically strip off the TimeOfDay and not be used in the comparisons.  Because the System.DateTime has a resolution down to the milliseconds, anyone searching for any equality based on the date will not find a match.  This is especially true when picking a date from the calendar icon or when typing in a date; you do not specifiy the time and it is implied to be midnight.

Any assistance, comments, or improvements is greatly appreciated.

Ed Lamprecht

Michael O'Flaherty
Top achievements
Rank 2
 answered on 12 Apr 2012
2 answers
49 views
How or when can we get feedback/progress for uploaded files in the media manager. At present, when the upload button is clicked, it does not appear to do anything to the user, and you kind of have to hope that it is uploading. Is there a way around this, or will some feedback/progress be added to the control in the near future?
Quintin
Top achievements
Rank 1
 answered on 12 Apr 2012
1 answer
96 views
Problem:
I use a Dynamic RadComboBox having EnableLoadOndemand feature. After entering the search value , I tab out to go to the next control. Sometimes when I tab out, the drop down does not close .

Other Details: I tried using OnClientBlur event to close Dropdown, does not work.

It appears that when the RadComboBox_ItemsRequested server event is being processed, the key stroke (in my case tab) is not being grabbed/recognized. At all other times , the drop down closes.

Code:
  Public Class TempComboBox
        Inherits RadComboBox
  
        Const BACK_SPACE = "8"
  
        Private Sub CompanyInfoComboBox_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
  
            Dim oHeaderTemplate
            Dim oItemTemplate
  
            Me.Height = 200
            Me.EnableTextSelection = True
            Me.MarkFirstMatch = False
            Me.EnableViewState = True
            Me.DropDownWidth = 500
  
            Me.OnClientDropDownOpening = "DropDownOpening"
            Me.EmptyMessage = "Type  Code"
            Me.EnableLoadOnDemand = True
            Me.ShowMoreResultsBox = False
            Me.ShowDropDownOnTextboxClick = True
            Me.HighlightTemplatedItems = True
            Me.OnClientItemsRequested = "HighlightItem"
            Me.OnClientItemsRequesting = "HandleKeyPress"
            Me.OnClientKeyPressing = "HandleTab"
            Me.OnClientFocus = "HandleOnFocus"
            Me.CloseDropDownOnBlur = True
            Me.ChangeTextOnKeyBoardNavigation = True
            Page.ClientScript.RegisterStartupScript(Me.GetType, "TelerikHandleKeyPressScript", TelerikHandleKeyPressScript())
            Page.ClientScript.RegisterStartupScript(Me.GetType, "TelerikHandleTabScript", TelerikHandleTabScript())
            Page.ClientScript.RegisterStartupScript(Me.GetType, "TelerikDropDownOpeningScript", TelerikDropDownOpeningScript())
            Page.ClientScript.RegisterStartupScript(Me.GetType, "TelerikHandleOnFocusScript", TelerikHandleOnFocusScript())
            Page.ClientScript.RegisterStartupScript(Me.GetType, "TelerikHighlightItemScript", TelerikHighlightItemScript())
  
            AddHandler Me.ItemsRequested, AddressOf RadComboBox_ItemsRequested
  
            oHeaderTemplate = New MasterHeaderTemplate
            oItemTemplate = New MasterItemTemplate
            Me.Width = 75
  
            Me.HeaderTemplate = oHeaderTemplate
            Me.ItemTemplate = oItemTemplate
  
        End Sub
  
  
        Function TelerikHighlightItemScript() As String
            Dim sJscript As String = "<script language=""javascript""> " & _
            "            function HighlightItem(combo,e){" & _
            "           var item=combo.get_items().getItem(0);  " & _
               "           if (item){  " & _
                "           if (item.get_value() != '0'){  " & _
            "           item.highlight() ;  " & _
           "           } } " & _
        "       }  </script>"
  
            Return sJscript
        End Function
  
        Function TelerikDropDownOpeningScript() As String
            Dim sJscript As String = "<script language=""javascript""> " & _
            "            function DropDownOpening(combo,e){" & _
             "           combo.requestItems(combo.get_text(), false);  " & _
         "       }  </script>"
  
            Return sJscript
        End Function
  
        Function TelerikHandleTabScript() As String
            Dim sJscript As String = "<script language=""javascript""> " & _
            "            function HandleTab(combo,e){" & _
             "           if (event.keyCode == 9) { " & _
               "           combo.hideDropDown(); " & _
                "           if (combo.get_value() == ''){" & _
                 "           if (combo.get_items().get_count()  > 0){" & _
             "                 combo.set_value(combo.get_text()); } else { combo.set_value(combo.get_text()); } } }" & _
"       }  </script>"
  
            Return sJscript
        End Function
  
        Function TelerikHandleOnFocusScript() As String
            Dim sJscript As String = "<script language=""javascript""> " & _
            "            function HandleOnFocus(combo,e){" & _
                    "         var attrib = combo.get_attributes().getAttribute('OriginalFieldID');      " & _
                    "         var firstCombo = $find('FilterType_'+attrib+'');      " & _
                    "       if (firstCombo){       " & _
                     "        combo.requestItems(firstCombo.get_value()+'_FilterType', false); }       " & _
         "       }  </script>"
  
            Return sJscript
        End Function
  
        Function TelerikHandleKeyPressScript() As String
            Dim sJscript As String = "<script language=""javascript""> " & _
            "            function HandleKeyPress(combo,e){" & _
            "            try {if (keypressed == 9)  { combo.hideDropDown(); " & _
            "            }} catch(e) {}" & _
           "            try {if (keypressed == 8)  { var context = e.get_context();" & _
            "           context[""keyPressed""] = keypressed+''; }} catch(e) {}" & _
            "       }  </script>"
  
            Return sJscript
        End Function
  
  
        Protected Sub RadComboBox_ItemsRequested(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs)
  
  
            If (e.Context.TryGetValue("keyPressed", BACK_SPACE)) Then
                'do nothing
            Else
                If e.Text.Trim.Length > 3 Then
                    GetDataIntoCombo(e.Text)
                End If
            End If
        End Sub
  
  
        Public Sub GetDataIntoCombo(ByVal txtCode As String)
            Dim dt As DataTable = GetComboBoxDataFROMDATABASE(txtCode)
  
            If dt.Rows.Count = 0 Then
                Dim item As New RadComboBoxItem()
                Dim hl As New HyperLink()
                hl.ID = "hl"
                hl.Text = " There were no matches. Please click on this link for further information."
  
                item.Value = "0"
                item.DataBind()
                Me.Items.Add(item)
  
                item.DataBind()
  
            ElseIf dt.Rows.Count < 51 Then
                SetDisplayItemsForRefInfo(dt)
  
                Dim item As New RadComboBoxItem()
  
                item.Text = String.Empty
                item.Value = "0"
                Me.Items.Add(item)
            Else
  
                Dim item As New RadComboBoxItem()
  
                item.Text = "Too many codes have been found. Please enter more characters."
                item.Value = "0"
  
                Me.Items.Add(item)
  
            End If
  
            Me.DataBind()
        End Sub
  
  
  
        Private Sub SetDisplayItemsForRefInfo(ByVal dt As DataTable)
            For Each dataRow As DataRow In dt.Rows
                Dim item As New RadComboBoxItem()
                Dim Code As String = String.Empty
                item.Text = DirectCast(dataRow("Code"), String)
                item.Value = dataRow("Code").ToString()
  
                Dim Name As String = String.Empty
  
  
                Try
                    Name = DirectCast(dataRow("Name"), String)
                    Code = DirectCast(dataRow("Code"), String)
  
                Catch ex As Exception
  
                End Try
  
                item.Attributes.Add("Code", Code.ToString)
                item.Attributes.Add("Name", Name.ToString())
  
  
                Me.Items.Add(item)
                item.DataBind()
  
  
            Next
        End Sub
  
  
  
        Private Function GetComboBoxDataFROMDATABASE(ByVal UserText As String) As DataTable
            Try
                'code to get from DB
                Return New DataTable
            Catch ex As Exception
                Return Nothing
  
            End Try
        End Function
  
  
    End Class
Ivana
Telerik team
 answered on 12 Apr 2012
2 answers
125 views
I have a website on working on that will have a page that will have links to different pdf files.  Instead of just listing them I wanted to see if telerik has any controls that will allow me to list them in a nice clean way.  Is there a control that I could use that would allow me to do this?

Thank you
Jerry
Top achievements
Rank 1
 answered on 12 Apr 2012
5 answers
193 views
My Code is below and the Delete Button is not working?


aspx

 <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        </telerik:RadScriptManager>
        <asp:PlaceHolder ID="phdrGrid" runat="server" ></asp:PlaceHolder>
        <asp:SqlDataSource ID="sqldsGrid" runat="server"
            ConnectionString="<%$ ConnectionStrings:EFDBConnectionString %>"
            SelectCommand="SELECT * FROM [sites]"
            UpdateCommand="UPDATE [sites] SET [SiteName]=@SiteName WHERE [SiteId]=@SiteId"
            DeleteCommand="DELETE FROM [sites] WHERE [SiteId]=@SiteId">
        <UpdateParameters>
            <asp:Parameter Name="@SiteId" />
        </UpdateParameters>
        <DeleteParameters>
            <asp:Parameter Name="@SiteId" />
        </DeleteParameters>
        </asp:SqlDataSource>   

aspx.vb

Imports System.Data
Imports System.Data.SqlClient
Imports Telerik.Web.UI


Partial Public Class _Default
    Inherits System.Web.UI.Page

    Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        Dim RadGrid1 As New RadGrid()
        'RadGrid1.NeedDataSource += New GridNeedDataSourceEventHandler(RadGrid1_NeedDataSource)
        'RadGrid1.ItemCommand += New GridCommandEventHandler(RadGrid1_ItemCommand)
        'RadGrid1.ItemCreated += New GridItemEventHandler(RadGrid1_ItemCreated)
        'RadGrid1.ID = "rgDemo"
        RadGrid1.Width = Unit.Percentage(100)
        RadGrid1.PageSize = 3
        RadGrid1.AllowPaging = True
        RadGrid1.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric
        RadGrid1.AutoGenerateColumns = False
        RadGrid1.GroupingEnabled = True
        RadGrid1.ShowGroupPanel = True
        RadGrid1.ShowStatusBar = True
        RadGrid1.ClientSettings.AllowDragToGroup = True
        RadGrid1.DataSourceID = "sqldsGrid"
        RadGrid1.Skin = "Outlook"

        RadGrid1.MasterTableView.PageSize = 15
        RadGrid1.MasterTableView.DataKeyNames = New String() {"SiteId"}
        RadGrid1.MasterTableView.AllowAutomaticUpdates = True
        'RadGrid1.MasterTableView.EditFormSettings.EditFormType = GridEditFormType.Template
        RadGrid1.MasterTableView.EditMode = GridEditMode.InPlace
        'Dim gtc As New GridTemplateColumn()
        'gtc.ItemTemplate = New ItemTemplateLabels("Description")
        'gtc.HeaderText = "Description"
        'gtc.EditItemTemplate = New EditItemTemplateTextBoxes("Description")
        'RadGrid1.MasterTableView.Columns.Add(gtc)

        'Dim gt2 As New GridTemplateColumn()
        'gt2.ItemTemplate = New ItemTemplateLabels("Name")
        'gt2.HeaderText = "Name"
        'gt2.EditItemTemplate = New EditItemTemplateTextBoxes("Name")
        'RadGrid1.MasterTableView.Columns.Add(gt2)
        Dim boundColumn1 As New GridBoundColumn()
        boundColumn1.DataField = "SiteId"
        boundColumn1.UniqueName = "SiteId"
        boundColumn1.HeaderText = "SiteId"
        RadGrid1.MasterTableView.Columns.Add(boundColumn1)
        Dim boundColumn2 As New GridBoundColumn()
        boundColumn2.DataField = "SiteName"
        boundColumn2.UniqueName = "SiteName"
        boundColumn2.HeaderText = "SiteName"
        RadGrid1.MasterTableView.Columns.Add(boundColumn2)


        Dim gt3 As New GridTemplateColumn()
        gt3.ItemTemplate = New ItemTemplateLinks("Links")
        gt3.UniqueName = "EditCommandColumn"
        gt3.HeaderText = "Links"
        gt3.EditItemTemplate = New EditItemTemplateLinks("Links", "Update", "Update")
        gt3.EditItemTemplate = New EditItemTemplateLinks("Links", "Cancel", "Cancel")
        RadGrid1.MasterTableView.Columns.Add(gt3)

        Dim gBtnColumn As New GridButtonColumn()
        gBtnColumn.CommandName = "Delete"
        gBtnColumn.Text = "Delete"
        gBtnColumn.ButtonType = GridButtonColumnType.LinkButton
        RadGrid1.MasterTableView.Columns.Add(gBtnColumn)

        RadGrid1.MasterTableView.EditFormSettings.EditFormType = GridEditFormType.Template

        phdrGrid.Controls.Add(RadGrid1)
    End Sub

    Private Class ItemTemplateLinks
        Implements ITemplate
        Protected rBtn As RadButton
        Private colname As String = String.Empty
        Private colValue As String = String.Empty

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

        Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
            rBtn = New RadButton()
            rBtn.Text = "Edit"
            rBtn.ButtonType = RadButtonType.StandardButton
            'rBtn.Command += New CommandEventHandler(rBtn_Command)
            rBtn.CommandName = "Edit"
            Dim rnd As New Random()
            rBtn.ID = "test"
            container.Controls.Add(rBtn)
        End Sub

        Private Sub rBtn_Command(ByVal sender As Object, ByVal e As CommandEventArgs)
            Dim a As String = TryCast(sender, RadButton).CommandName
        End Sub

    End Class


    Private Class EditItemTemplateLinks
        Implements IBindableTemplate

        Private lstItemType As ListItemType
        Protected rBtn As RadButton
        Protected rBtn1 As RadButton
        Private colname As String = String.Empty
        Private btnText As String = String.Empty
        Private cmdName As String = String.Empty
        Private colValue As String = String.Empty

        Public Sub New(ByVal cName As String, ByVal bText As String, ByVal bCmdName As String)
            btnText = bText
            bCmdName = cmdName
            colname = cName
        End Sub

        Private Sub rBtn_Command(ByVal sender As Object, ByVal e As CommandEventArgs)
            Dim a As String = TryCast(sender, RadButton).CommandName
        End Sub


        Public Function ExtractValues(ByVal container As System.Web.UI.Control) As System.Collections.Specialized.IOrderedDictionary Implements System.Web.UI.IBindableTemplate.ExtractValues

            Dim od As New OrderedDictionary()
            Return od

        End Function

        Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn

            rBtn = New RadButton()
            rBtn.Text = "Update"
            rBtn.ButtonType = RadButtonType.StandardButton
            rBtn.CommandName = "Update"
            'rBtn.Command += New CommandEventHandler(rBtn_Command)
            Dim rnd As New Random()
            rBtn.ID = "ssss"

            container.Controls.Add(rBtn)

            rBtn1 = New RadButton()
            rBtn1.Text = "Cancel"
            rBtn1.ButtonType = RadButtonType.StandardButton
            rBtn1.CommandName = "Cancel"
            Dim rnd1 As New Random()
            container.Controls.Add(rBtn1)

        End Sub
    End Class


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

End Class



When i click the Delete Button I am getting the Following error


Server Error in '/' Application.

Unable to cast object of type 'ItemTemplateLinks' to type 'System.Web.UI.IBindableTemplate'.

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.InvalidCastException: Unable to cast object of type 'ItemTemplateLinks' to type 'System.Web.UI.IBindableTemplate'.

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:

[InvalidCastException: Unable to cast object of type 'ItemTemplateLinks' to type 'System.Web.UI.IBindableTemplate'.]
Telerik.Web.UI.GridTemplateColumn.FillValues(IDictionary newValues, GridEditableItem editableItem) +388
Telerik.Web.UI.GridEditableItem.ExtractValues(IDictionary newValues) +164
Telerik.Web.UI.GridTableView.ExtractValuesFromItem(IDictionary newValues, GridEditableItem editedItem) +116
Telerik.Web.UI.GridTableView.PerformDelete(GridEditableItem editedItem, Boolean suppressRebind) +175
Telerik.Web.UI.GridCommandEventArgs.ExecuteCommand(Object source) +4861
Telerik.Web.UI.RadGrid.OnBubbleEvent(Object source, EventArgs e) +191
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
Telerik.Web.UI.GridItem.OnBubbleEvent(Object source, EventArgs e) +137
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565


Version Information: Microsoft .NET Framework Version:2.0.50727.3623; ASP.NET Version:2.0.50727.3618

Dan
Top achievements
Rank 1
 answered on 12 Apr 2012
5 answers
117 views
most of time the default editform works fine. There are cases that I just need to have a little bit tweak, for example, the textbox needs to be a little bit wider etc. If switch to use template for editform, I have to start from scratch, creating all those boring stuff, my question: is there somewhere we can get the aspx code the default editform? so it will be just a few minutes to add simple/quick customization.

Thanks.
Daniel
Telerik team
 answered on 12 Apr 2012
1 answer
110 views
Hi, I am trying to make my splitter fit into the div that i specify.
Following code works perfect when placed inside aspx, but the UI changes (radSplitter now takes default width and height of 400px) when the same code is places inside the ascx.

I am not sure, why ? Ideally, the RadSplitter should use the absolute dimensions of the container to set its width and height.
Why should i bother to set the dimensions for all parent containers ?? The moment i specify absolute values for the container, the child controls should use those values.

Please correct me if my understanding is wrong.

<
div style="width: 700px; height: 500px; border: 2px solid orange;">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
    <telerik:RadSplitter ID="SplitterHorizontal" runat="server" height="100%" width="100%" Scrolling="None">
        <telerik:RadPane ID="LeftPane" runat="server" width="30%">           
            <telerik:RadSplitter ID="VerticalSplitter" Orientation="Horizontal" runat="server">
                <telerik:RadPane ID="LeftTopPane" runat="server" style="height:50%">
                </telerik:RadPane>
                <telerik:RadSplitBar ID="HorizontalSplitBar" runat="server" CollapseMode="Forward" />
                <telerik:RadPane ID="LeftBottomPane" runat="server" height="50%" >                   
                </telerik:RadPane>
            </telerik:RadSplitter>       
        </telerik:RadPane>
        <telerik:RadSplitBar ID="VerticalSplitBar" runat="server" CollapseMode="Forward" />
        <telerik:RadPane ID="RightPane" runat="server" width="70%">
        </telerik:RadPane>
    </telerik:RadSplitter>
</div>
Dobromir
Telerik team
 answered on 12 Apr 2012
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
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
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?