Telerik Forums
UI for ASP.NET AJAX Forum
3 answers
65 views
I used ClassicBlue for the skin for RadtabStrip , but I see a -----  line middle of the text , I added text decoration:none for that and still solve the problem.. what I need to do?
Yana
Telerik team
 answered on 18 Jun 2010
3 answers
166 views
I see how I can cancel a resize event client side if the new value is less than required from this post:

<script type="text/javascript"> 
  
function ColumnResizing(sender, args) 
{ 
    var newWidth = args.get_gridColumn()._columnResizer._currentWidth; 
    if (newWidth < 200) 
    { 
        args.set_cancel(true); 
    } 
} 
  
</script> 

Is it possible to set the column size to the default width here?

Something like args.get_gridColumn().set_width(200);

I didn't see anything on the column object to accomplish this.

Thanks for any help,
Robert


Dimo
Telerik team
 answered on 18 Jun 2010
1 answer
113 views
Hi Telerik,

Firstly My Boss tells me we have support but unfortunately a couple of people have left and the support details have been lost - would you be able to tell me how to recover these details?


I have a RadGrid control where certain columns and the group footers and footers need to be recalculated based on cell input (Excel style)
The calculation is too complicated to be solely performed in Javascript so we have decided to partially update the grid using AJAX and are successfuly doing this in the RadGrid itemcreated event as per this article:


http://www.telerik.com/support/kb/aspnet-ajax/grid/ajaxifying-particular-controls-in-radgrid-template-column-with-ajax-manager.aspx

I am then using this javascript to initiate the ajax request :

 

ajaxManager.ajaxRequestWithTarget(sender.getAttribute('myUniqueId', true), 'true'); 

We want to know if it is at all possible to do the same with GroupFooters and Footers because at that point in the grid lifecyle there seems to be no way to reference the data that binds the template control Cell to its Group Footer and Footer.

Kind regards,

Ashley

Iana Tsolova
Telerik team
 answered on 18 Jun 2010
2 answers
366 views
This is probably very simple but what is the easiest way to copy a nodes collection from one tree to another or even to another node within the same tree?  Including any sub nodes belonging to the collection.
Nikolay Tsenkov
Telerik team
 answered on 18 Jun 2010
1 answer
194 views
Hello,

 I have a Treeview with LoadOnDemand using ServerSideCallback.

I am using a Combobox at the top of the page to act as a quick selector/search when i select a node formt he combo box it selected the node and then expands it.

I then call  the scroolIntoView but i get a JS Error stating offsetTop is null or not an object

 heres the sample code i use for the Combox's SelctionChanged Event

function ddlSearchTreeView_SelectionChanged(sender, eventArgs)   
                {  
                    var _Item = eventArgs.get_item();  
                    var tree = $find("<%=oTreeView.ClientID %>");  
                    var node = tree.findNodeByValue(_Item.get_value());  
                    node.select();  
                    node.expand();  
// HIGH VALUE FOR TESTING  
                    window.setTimeout(function() {node.scrollIntoView(); }, 10000);  
                } 
Nikolay Tsenkov
Telerik team
 answered on 18 Jun 2010
1 answer
232 views
Hi,
      in my grid I have column defined as datetime for that i am applying DataFormatString="{0:dd/MM/yyyy}" to show it in dd/MM/YYY formate instead of default MM/dd/YYYYY formate. Now on edit of row i am getting client side scipt error like-

" The string was not recognized as a valid DateTime."

I am using <telerik:GridEditCommandColumn>  for inline editing.

How to avod this error plz help me regarding this.

Regards,
Dheeraj
Martin
Telerik team
 answered on 18 Jun 2010
2 answers
455 views
How to disable scroll bar from the radlistbox ? Thanks
yao wang
Top achievements
Rank 1
 answered on 18 Jun 2010
4 answers
150 views
Hello,
I am having trouble getting the "Client Edit With Batch Server Update" sample, http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/clienteditbatchupdates/defaultcs.aspx, to adapt to working with dropdowns that are actually templated RadComboboxes.  This is likely because the RadCombobox is rendered in a div and the templates are rendered as a table.

When the RadGrid renders it is displaying the GridTemplateColumn, but none of the values are visible in the templated column.  I can select a value (the text does not display until I select it).

           function ShowColumnEditor() { 
                editedCell = this; 
 
                //hide text and show column editor in the edited cell 
                var cellText = this.getElementsByTagName("span")[0]; 
                cellText.style.display = "none"; 
                 
                //display the span which wrapps the hidden checkbox editor 
                if (this.getElementsByTagName("span")[1]) { 
                    this.getElementsByTagName("span")[1].style.display = ""; 
                } 
 
               //TODO: Ask about this, cannot get to work. 
                 
                if (this.getElementsByTagName("div")[0]) { 
                    this.getElementsByTagName("div")[0].style.display = ""; 
                } 
 
                var colEditor = this.getElementsByTagName("input")[0] || this.getElementsByTagName("select")[0]; 
                //if the column editor is a form decorated select dropdown, show it instead of the original 
                if (colEditor.className == "rfdRealInput" && colEditor.tagName.toLowerCase() == "select") colEditor = Telerik.Web.UI.RadFormDecorator.getDecoratedElement(colEditor); 
                colEditor.style.display = ""; 
                colEditor.focus(); 
            } 
            function StoreEditedItemId(editCell) { 
                //get edited row key value and add it to the array which holds them 
                var gridRow = $find(editCell.parentNode.id); 
                var rowKeyValue = gridRow.getDataKeyValue("FieldName"); 
                Array.add(editedItemsIds, rowKeyValue); 
            } 
            function HideEditor(editCell, editorType) { 
                //get reference to the label in the edited cell 
                var lbl = editCell.getElementsByTagName("span")[0]; 
                 
                switch (editorType) { 
                    case "textbox": 
                        var txtBox = editCell.getElementsByTagName("input")[0]; 
                        if (lbl.innerHTML != txtBox.value) { 
                            lbl.innerHTML = txtBox.value; 
                            editCell.style.border = "1px dashed"; 
 
                            StoreEditedItemId(editCell); 
                        } 
                        txtBox.style.display = "none"; 
                        break; 
                    case "checkbox": 
                        var chkBox = editCell.getElementsByTagName("input")[0]; 
                        if (lbl.innerHTML.toLowerCase() != chkBox.checked.toString()) { 
                            lbl.innerHTML = chkBox.checked; 
                            editedCell.style.border = "1px dashed"; 
 
                            StoreEditedItemId(editCell); 
                        } 
                        chkBox.style.display = "none"; 
                        editCell.getElementsByTagName("span")[1].style.display = "none"; 
                        break; 
                    case "dropdown": 
                        var ddl = editCell.getElementsByTagName("select")[0]; 
                        var selectedValue = ddl.options[ddl.selectedIndex].value; 
                        if (lbl.innerHTML != selectedValue) { 
                            lbl.innerHTML = selectedValue; 
                            editCell.style.border = "1px dashed"; 
 
                            StoreEditedItemId(editCell); 
                        } 
                        //if the form decorator was enabled, hide the decorated dropdown instead of the original. 
                        if (ddl.className == "rfdRealInput") ddl = Telerik.Web.UI.RadFormDecorator.getDecoratedElement(ddl); 
                        ddl.style.display = "none"; 
                    case "radcombo": 
                        //TODO:  Ask Telerik about this, tried to add this to get the templated RadCombobox value 
                        var ddlWrapper = editCell.getElementsByTagName("div")[0]; 
                        var ddl = editCell.getElementsByTagName("input")[0]; 
                        if (lbl.innerHTML != ddl.value) { 
                            lbl.innerHTML = ddl.value; 
                            editCell.style.border = "1px dashed"; 
 
                            StoreEditedItemId(editCell); 
                        } 
                        ddlWrapper.style.display = "none"; 
                    default: 
                        break; 
                } 
                lbl.style.display = "inline"; 
            } 


<telerik:GridTemplateColumn UniqueName="AccountID" SortExpression="AccountID" HeaderText="Account" ConvertEmptyStringToNull="true"> 
                    <ItemTemplate> 
                             <asp:Label ID="lblAccountID" runat="server" Text='<%# Eval("AccountID") %>' /> 
                                                    <telerik:radcombobox id="cboAccountID" runat="server"   
                        Width="305px" Height="200px"  
                        EnableVirtualScrolling="true"  
                        HighlightTemplatedItems="true" 
                        EnableLoadOnDemand="true" 
                        DataValueField="AccountID" 
                        OnItemsRequested="cboAccountID_ItemsRequested" 
                         
                        > 
                        <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> 
                        <HeaderTemplate> 
                                    <table style="width: 275px" cellspacing="0" cellpadding="0"> 
                                        <tr> 
                                            <td style="width: 20%;"> 
                                                AccountID</td> 
                                            <td style="width: 80%"> 
                                                Account Alias</td> 
                                            <td style="width: 20%"> 
                                                Is Active?</td> 
                                        </tr> 
                                    </table> 
                                </HeaderTemplate> 
                                <ItemTemplate> 
                                    <table style="width: 275px" cellspacing="0" cellpadding="0"> 
                                        <tr> 
                                            <td style="width: 20%;"> 
                                                <%#DataBinder.Eval(Container, "Attributes['AccountID']")%> 
                                            </td> 
                                            <td style="width: 80%;"> 
                                                <%#DataBinder.Eval(Container, "Attributes['AccountAliasc']")%> 
                                            </td> 
                                            <td style="width: 20%;"> 
                                                <%# DataBinder.Eval(Container, "Attributes['IsActive']")%> 
                                            </td> 
                                        </tr> 
                                    </table> 
                                </ItemTemplate> 
                        </telerik:radcombobox> 
                    </ItemTemplate> 
                </telerik:GridTemplateColumn> 
jgill
Top achievements
Rank 1
 answered on 18 Jun 2010
4 answers
205 views
Hi. We previously had a page with several rotators on it. They were rotated from ButtonsOver which worked fine. We're now using FromCode as we needed to position the rotator button controls else where. Everything is working okay except when you initially mouseover the button control (first time), there is the normal FrameDuration of 700ms. We want it to start straight away like ButtonsOver without the initial delay. Thanks.

Daniel

JS
 
        function startRotator(clickedButton, rotator, direction) {  
            if (!rotator.autoIntervalID) {  
                refreshButtonsState(clickedButton, rotator);  
                rotator.autoIntervalID = window.setInterval(function() {  
                    rotator.showNext(direction);  
                }, rotator.get_frameDuration());  
            }  
        }  
 
        function stopRotator(clickedButton, rotator) {  
            if (rotator.autoIntervalID) {  
                refreshButtonsState(clickedButton, rotator)  
                window.clearInterval(rotator.autoIntervalID);  
                rotator.autoIntervalID = null;  
            }  
        }  
 
        function showNextItem(clickedButton, rotator, direction) {  
            rotator.showNext(direction);  
            refreshButtonsState(clickedButton, rotator);  
        }  
 
        // Refreshes the Stop and Start buttons  
        function refreshButtonsState(clickedButton, rotator) {  
            var jQueryObject = $telerik.$;  
            var className = jQueryObject(clickedButton).attr("class");  
 
            switch (className) {  
                case "start":  
                    {// Start button is clicked  
 
                        jQueryObject(clickedButton).removeClass();  
                        jQueryObject(clickedButton).addClass("startSelected");  
 
                        // Find the stop button. stopButton is a jQuery object  
                        var stopButton = findSiblingButtonByClassName(clickedButton, "stopSelected");  
 
                        if (stopButton) {// Changes the image of the stop button  
                            stopButton.removeClass();  
                            stopButton.addClass("stop");  
                        }  
 
                    } break;  
                case "stop":  
                    {// Stop button is clicked  
 
                        jQueryObject(clickedButton).removeClass();  
                        jQueryObject(clickedButton).addClass("stopSelected");  
 
                        // Find the start button. startButton is a jQuery object  
                        var startButton = findSiblingButtonByClassName(clickedButton, "startSelected");  
                        if (startButton) {// Changes the image of the start button  
                            startButton.removeClass();  
                            startButton.addClass("start");  
                        }  
 
                    } break;  
            }  
        }  
 
        // Finds a button by its className. Returns a jQuery object  
        function findSiblingButtonByClassName(buttonInstance, className) {  
            var jQuery = $telerik.$;  
            var ulElement = jQuery(buttonInstance).parent().parent(); // get the UL element  
            var allLiElements = jQuery("li", ulElement); // jQuery selector to find all LI elements  
 
            for (var i = 0; i < allLiElements.length; i++) {  
                var currentLi = allLiElements[i];  
                var currentAnchor = jQuery("A:first", currentLi); // Find the Anchor tag  
 
                if (currentAnchor.hasClass(className)) {  
                    return currentAnchor;  
                }  
            }  
        }  
 

ASPX
<telerik:RadRotator ID="rrNewToTheZoo" runat="server" Height="196px" Width="220px" 
                                            Skin="Default" FrameDuration="700" ItemWidth="220px" RotatorType="FromCode" ScrollDirection="Up" 
                                            DataSourceID="sdsNewToTheZoo">  
                                            <ItemTemplate> 
                                                <table border="0" cellpadding="0" cellspacing="0" class="mini_profile_info">  
                                                    <tr> 
                                                        <td> 
                                                            <a href="/people/profiles/?empno=<%# DataBinder.Eval(Container.DataItem, "pkEmployeeNumber")%>">  
                                                                <%# DataBinder.Eval(Container.DataItem, "fullname")%></a>  
                                                        </td> 
                                                    </tr> 
                                                    <tr> 
                                                        <td> 
                                                            <%# DataBinder.Eval(Container.DataItem, "positionDescription")%> 
                                                        </td> 
                                                    </tr> 
                                                    <tr> 
                                                        <td style="padding-bottom: 10px;">  
                                                            <%# DataBinder.Eval(Container.DataItem, "directorate")%> 
                                                        </td> 
                                                    </tr> 
                                                </table> 
                                            </ItemTemplate> 
                                        </telerik:RadRotator> 
 
                                                    <div class="rotator_custom_up">  
                                                        <a href="#" onmouseout="stopRotator(this, $find('<%= rrNewToTheZoo.ClientID %>')); return false;" 
                                                            onmouseover="startRotator(this, $find('<%= rrNewToTheZoo.ClientID %>'), Telerik.Web.UI.RotatorScrollDirection.Up); return false;">  
                                                            <img src="/images/rotator_up_out.gif" width="9" height="6" alt="" /></a></div> 
 
Daniel
Top achievements
Rank 1
Iron
Iron
Iron
 answered on 17 Jun 2010
4 answers
183 views
I have two radgrids on a page and export is not working on the first grid.  In fact, when you click the export button, that grid's header command and filter rows disappear.  Sorting, filtering, and paging work just fine, but not exporting.  Here's my code:

XML Input File:
<?xml version="1.0" encoding="utf-8" ?> 
<years> 
    <year value="2010" name="rat"></year> 
    <year value="2011" name="cat"></year> 
    <year value="2012" name="moose"></year> 
    <year value="2013" name="deer"></year> 
  <year value="2014" name="tiger"></year> 
  <year value="2015" name="dragon"></year> 
  <year value="2016" name="skunk"></year> 
  <year value="2017" name="armadillo"></year> 
  <year value="2018" name="dog"></year> 
  <year value="2019" name="goldfish"></year> 
  <year value="2020" name="koi"></year> 
  <year value="2021" name="catfish"></year> 
  <year value="2022" name="snake"></year> 
  <year value="2023" name="beaver"></year> 
  <year value="2024" name="dalmation"></year> 
  <year value="2025" name="bluebird"></year> 
  <year value="2026" name="boar"></year> 
  <year value="2027" name="toad"></year> 
  <year value="2028" name="mouse"></year> 
  <year value="2029" name="salamander"></year> 
  <year value="2030" name="alligator"></year> 
</years> 

ASPX Code:
    <form id="form1" runat="server">  
        <div> 
            <asp:ScriptManager runat="server" ID="ScriptManager1">  
            </asp:ScriptManager> 
            <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">  
                <AjaxSettings> 
                    <telerik:AjaxSetting AjaxControlID="rgGrid">  
                        <UpdatedControls> 
                            <telerik:AjaxUpdatedControl ControlID="rgGrid" /> 
                        </UpdatedControls> 
                    </telerik:AjaxSetting> 
                </AjaxSettings> 
            </telerik:RadAjaxManager> 
            <table> 
            <tr> 
            <td> 
            <telerik:RadGrid ID="rgGrid" runat="server" OnNeedDataSource="rgGrid_NeedDataSource" Width="45%" 
                OnItemDataBound="rgGrid_ItemDataBound" OnItemCreated="rgGrid_ItemCreated" AutoGenerateColumns="true">  
                <MasterTableView> 
                    <CommandItemTemplate> 
                        <div style="padding: 5px;" align="right">  
                            <strong>Export:&nbsp;&nbsp;</strong><asp:ImageButton ID="ibExportExcel" runat="server" 
                                ImageUrl="~/images/editorIcons/MSExcell_32.png" ToolTip="Export to Excel" OnClick="ibExportExcel_Click" /> 
                            <asp:ImageButton ID="ibExportWord" runat="server" ImageUrl="~/images/editorIcons/MSWord_32.png" ToolTip="Export to Word"   
                                OnClick="ibExportWord_Click" /></div>  
                    </CommandItemTemplate> 
                </MasterTableView> 
            </telerik:RadGrid> 
            </td><td><telerik:RadGrid ID="rgGrid2" runat="server" OnNeedDataSource="rgGrid2_NeedDataSource" Width="45%" 
                OnItemDataBound="rgGrid2_ItemDataBound" OnItemCreated="rgGrid2_ItemCreated" AutoGenerateColumns="true">  
                <MasterTableView> 
                    <CommandItemTemplate> 
                        <div style="padding: 5px;" align="right">  
                            <strong>Export:&nbsp;&nbsp;</strong><asp:ImageButton ID="ibExportExcel2" runat="server" 
                                ImageUrl="~/images/editorIcons/MSExcell_32.png" ToolTip="Export to Excel" OnClick="ibExportExcel2_Click" /> 
                            <asp:ImageButton ID="ibExportWord2" runat="server" ImageUrl="~/images/editorIcons/MSWord_32.png" ToolTip="Export to Word"   
                                OnClick="ibExportWord2_Click" /></div>  
                    </CommandItemTemplate> 
                </MasterTableView> 
            </telerik:RadGrid> 
            </td></tr></table> 
        </div> 
    </form> 
 

.cs Code:
public partial class WebAdmin_TestGrid_Default : System.Web.UI.Page  
{  
    DataSet ds = new DataSet();  
    bool isForExport = false;  
    bool isForExport2 = false;  
 
    protected void Page_Load(object sender, EventArgs e)  
    {  
        rgGrid.PageSize = Profile.PreferredGridLines;  
        rgGrid2.PageSize = Profile.PreferredGridLines;  
    }
    #region Grid Logic  
 
    protected void rgGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)  
    {  
        ds = new DataSet();  
        string myXMLFile = Server.MapPath("~/App_Data/YearsTest.xml");  
        System.IO.FileStream fsReadXML = new System.IO.FileStream(myXMLFile, System.IO.FileMode.Open);  
        try 
        {  
            ds.ReadXml(fsReadXML);  
        }  
        catch (Exception ex)  
        {  
            Master.SetMessage(ex.ToString());  
        }  
        finally 
        {  
            fsReadXML.Close();  
        }  
        rgGrid.DataSource = ds;  
    }  
    protected void rgGrid_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)  
    {  
        // Hide filter row in export.  
        if (e.Item is GridFilteringItem && isForExport)  
            e.Item.Visible = false;  
 
        // Pull Number of Entries per page in page from web.config appsettings.  
        if (e.Item is GridPagerItem)  
        {  
            GridPagerItem item = e.Item as GridPagerItem;  
            RadComboBox combo = item.FindControl("PageSizeComboBox") as RadComboBox;  
            combo.AutoPostBack = true;  
            combo.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(combo_SelectedIndexChanged);  
        }  
    }  
    protected void rgGrid_ItemDataBound(object sender, GridItemEventArgs e)  
    {  
 
        if (e.Item is GridPagerItem)  
        {  
            GridPagerItem item = e.Item as GridPagerItem;  
 
            RadComboBox combo = item.FindControl("PageSizeComboBox") as RadComboBox;  
            combo.Items.Clear();  
            string strPageSizes = ConfigurationManager.AppSettings["PageSizes"];  
            string[] arrPageSizes = strPageSizes.Split(',');  
            for (int x = 0; x < arrPageSizes.Length; x++)  
            {  
                combo.Items.Add(new RadComboBoxItem(arrPageSizes[x], arrPageSizes[x]));  
            }  
            combo.SelectedValue = rgGrid.MasterTableView.PageSize.ToString();  
        }  
    }  
    void combo_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)  
    {  
        rgGrid.PageSize = int.Parse((o as RadComboBox).SelectedValue);  
        rgGrid.Rebind();  
    }  
    protected void ibExportExcel_Click(object sender, ImageClickEventArgs e)  
    {  
        isForExport = true;  
        rgGrid.MasterTableView.ExportToExcel();  
    }  
    protected void ibExportWord_Click(object sender, ImageClickEventArgs e)  
    {  
        isForExport = true;  
        rgGrid.MasterTableView.ExportToWord();  
    }
    #endregion  
 
    #region Grid2 Logic  
 
    protected void rgGrid2_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)  
    {  
        ds = new DataSet();  
        string myXMLFile = Server.MapPath("~/App_Data/YearsTest.xml");  
        System.IO.FileStream fsReadXML = new System.IO.FileStream(myXMLFile, System.IO.FileMode.Open);  
        try 
        {  
            ds.ReadXml(fsReadXML);  
        }  
        catch (Exception ex)  
        {  
            Master.SetMessage(ex.ToString());  
        }  
        finally 
        {  
            fsReadXML.Close();  
        }  
        rgGrid2.DataSource = ds;  
    }  
    protected void rgGrid2_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)  
    {  
        // Hide filter row in export.  
        if (e.Item is GridFilteringItem && isForExport)  
            e.Item.Visible = false;  
 
        // Pull Number of Entries per page in page from web.config appsettings.  
        if (e.Item is GridPagerItem)  
        {  
            GridPagerItem item = e.Item as GridPagerItem;  
            RadComboBox combo = item.FindControl("PageSizeComboBox") as RadComboBox;  
            combo.AutoPostBack = true;  
            combo.SelectedIndexChanged += new RadComboBoxSelectedIndexChangedEventHandler(combo_SelectedIndexChanged2);  
        }  
    }  
    protected void rgGrid2_ItemDataBound(object sender, GridItemEventArgs e)  
    {  
 
        if (e.Item is GridPagerItem)  
        {  
            GridPagerItem item = e.Item as GridPagerItem;  
 
            RadComboBox combo = item.FindControl("PageSizeComboBox") as RadComboBox;  
            combo.Items.Clear();  
            string strPageSizes = ConfigurationManager.AppSettings["PageSizes"];  
            string[] arrPageSizes = strPageSizes.Split(',');  
            for (int x = 0; x < arrPageSizes.Length; x++)  
            {  
                combo.Items.Add(new RadComboBoxItem(arrPageSizes[x], arrPageSizes[x]));  
            }  
            combo.SelectedValue = rgGrid2.MasterTableView.PageSize.ToString();  
        }  
    }  
    void combo_SelectedIndexChanged2(object o, RadComboBoxSelectedIndexChangedEventArgs e)  
    {  
        rgGrid2.PageSize = int.Parse((o as RadComboBox).SelectedValue);  
        rgGrid2.Rebind();  
    }  
    protected void ibExportExcel2_Click(object sender, ImageClickEventArgs e)  
    {  
        isForExport2 = true;  
        rgGrid2.MasterTableView.ExportToExcel();  
    }  
    protected void ibExportWord2_Click(object sender, ImageClickEventArgs e)  
    {  
        isForExport2 = true;  
        rgGrid2.MasterTableView.ExportToWord();  
    }
    #endregion  
}  
 
Laurie
Top achievements
Rank 2
 answered on 17 Jun 2010
Narrow your results
Selected tags
Tags
+? more
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?