Telerik Forums
UI for ASP.NET AJAX Forum
3 answers
164 views
I have a masterpage with a RadWindowManger on it and a window defined within it.

I have a page (WebForm1), based on that master page that opens a modal window using a locally defined RadWindowManager.

The window that opens from WebForm1.aspx uses another page, WebForm2.aspx for its content.

WenForm2 includes some JavaScript that finds the browser window and calls JavaScript on the master page that opens a 2nd window.

Both the 1st and 2nd windows are opened modally.

When I run the code and open the 2nd window it opens below the 1st window and whilst the modal screen appears.

I want to be able to invoke the 2nd window and have the modal screen cover the 1st screen as well as the base page. I don't want the user to be able to interact with the first window whilst the 2nd is open.

Is this possible?

Below is the code I'm using...
Site1.master
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="TestBed.Site1" %> 
 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"
    <title></title
    <asp:ContentPlaceHolder ID="head" runat="server"
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <form id="form1" runat="server"
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server"
    </telerik:RadScriptManager> 
    <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"
      <script type="text/javascript"
        function OpenPopup() { 
          var wnd = $find("<%=Popup.ClientID %>"); 
          wnd.show(); 
        } 
      </script> 
    </telerik:RadScriptBlock> 
     
     
    <div> 
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"
         
        </asp:ContentPlaceHolder> 
    </div> 
    <telerik:RadWindowManager ID="RadWindowManager1" runat="server" Skin="WebBlue"
      <Windows> 
       <telerik:RadWindow ID="Popup" runat="server"  
        Animation="None"  
        Width="400px" 
        Height="400px" 
        VisibleStatusbar="false" 
        NavigateUrl="http://www.google.com" 
        KeepInScreenBounds="true" 
        Modal="true"></telerik:RadWindow> 
      </Windows> 
    </telerik:RadWindowManager> 
    </form> 
</body> 
</html> 

WebForm1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="TestBed.WebForm2" %> 
 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"
    <title></title
</head> 
<body> 
    <form id="form1" runat="server"
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server"
    </telerik:RadScriptManager> 
    <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"
      <script type="text/javascript"
        function GetRadWindow() { 
          var oWindow = null
          if (window.radWindow) 
            oWindow = window.radWindow; 
          else if (window.frameElement.radWindow) 
            oWindow = window.frameElement.radWindow; 
          return oWindow; 
        } 
        function OpenPopup() { 
          var wnd = GetRadWindow().BrowserWindow; 
          wnd.OpenPopup(); 
        } 
      </script> 
     
    </telerik:RadScriptBlock> 
      <asp:Button runat="server" ID="btn2" Text="Click" OnClientClick="OpenPopup(); return false;" /> 
     
    </form> 
</body> 
</html> 
 

WebForm2.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TestBed.WebForm1" %> 
 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"
  <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"
    <script type="text/javascript"
      function Click() { 
        radopen(null, 'RadWindow1'); 
      } 
    </script> 
   
  </telerik:RadScriptBlock> 
 
 
  <asp:Button ID="btn" runat="server" Text="Click" OnClientClick="Click(); return false;" /> 
 
  <telerik:RadWindowManager ID="RadWindowManager1" runat="server" Skin="WebBlue"
    <Windows> 
      <telerik:RadWindow ID="RadWindow1" runat="server"  
        Animation="None"  
        Width="600px" 
        Height="100px" 
        VisibleStatusbar="false" 
        Left="50px"  
        Top="50px" 
        NavigateUrl="WebForm2.aspx" 
        KeepInScreenBounds="true" 
        Modal="true"
  </telerik:RadWindow> 
 
 
    </Windows> 
  </telerik:RadWindowManager> 
</asp:Content> 

I'd be grateful for any clues.

Thanks in advance.

--
Stuart


Stuart Hemming
Top achievements
Rank 2
 answered on 15 Oct 2009
1 answer
135 views
Is it possible to hide the document manager icon in the hyperlink manager?

I'm trying to disable this feature any way that I can figure out, but nothing seems to be working.  I don't want to use the basic link editor provided by the browser.

Which CSS file does the dialog box use?  I thought I might be able to override the CSS and set visibility to none for a#DocumentManager

any ideas? help?

thanks,
Brian Garson
Top achievements
Rank 2
 answered on 15 Oct 2009
2 answers
111 views

Hello I have a little issue here.  I am trying to link an item in my grid via its id but at the same time displaying its name instead.  Basiclay I have items in my sql table with names like IBM, NRC, and so on, each one has its unique id.  While I did manage to get this querystring to work I have to use an additional hyerlinked column.  I want to use just the name to link to the next page.   Thank you,

 

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:harwoodConnectionString %>"
            SelectCommand="SELECT  top 3 [NewsArticleID], [NewsArticleName] FROM [NewsArticles]
order by enddate desc"></asp:SqlDataSource>
        <telerik:RadGrid ID="RadGrid1" runat="server" Skin="" DataSourceID="SqlDataSource1" GridLines="None" ShowHeader="false">
            <HeaderContextMenu EnableTheming="True">
                <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation>
            </HeaderContextMenu>
            <MasterTableView AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
                <RowIndicatorColumn>
                    <HeaderStyle Width="20px"></HeaderStyle>
                </RowIndicatorColumn>
                <ExpandCollapseColumn>
                    <HeaderStyle Width="20px"></HeaderStyle>
                </ExpandCollapseColumn>
                <Columns>
                <telerik:GridBoundColumn  DataField="NewsArticleName" 
                        HeaderText="NewsArticleName" SortExpression="NewsArticleName" 
                        UniqueName="NewsArticleName">
                    </telerik:GridBoundColumn>
                    <telerik:GridHyperLinkColumn ItemStyle-HorizontalAlign="Right" DataTextFormatString="   read more..." DataNavigateUrlFields="NewsArticleID"
                        UniqueName="NewsArticleID" DataNavigateUrlFormatString="~/NewsArticle.aspx?NewsArticleID={0}"
                        DataTextField="NewsArticleID">
                    </telerik:GridHyperLinkColumn>
                </Columns>
Bryan Davis
Top achievements
Rank 1
 answered on 15 Oct 2009
2 answers
139 views
Hi all,
I have one problem when use RadAjax for control Ajax action in my webpage

My example project have home.aspx page and userControl, and userControl will be load on home page.
In my home page i added RadScriptManager, RadAjaxManager, and usercotrol I added RadAjaxManagerProxy
I done follow an example demo Ajax / User Controls/Master pages,
But When I load home page I get an error - You can see it in image that I attach below :(
I don't know that wrong in here
Please help me, I'm thnks so much :D

Code in Home.aspx

<%@ Import Namespace ="iHRPCore.Com"%>
<%@ Import Namespace ="System.Data" %>
<%@ Import Namespace ="System.Data.SqlClient" %>
<%@ Register TagPrefix="uc1" TagName="Table1_bottom" Src="Include/Table1_bottom.ascx" %>
<%@ Register TagPrefix="uc1" TagName="Table1_top" Src="Include/Table1_top.ascx" %>
<%@ Register TagPrefix="uc1" TagName="HeaderText_bottom" Src="Include/HeaderText_bottom.ascx" %>
<%@ Register TagPrefix="uc1" TagName="HeaderText_top" Src="Include/HeaderText_top.ascx" %>
<%@ Page language="c#" Codebehind="Editpage.aspx.cs" AutoEventWireup="false" Inherits="iHRPCore.Editpage" validateRequest="false" %>

<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register TagPrefix="uc1" TagName="Top" Src="Include/Top1.ascx" %>
<%@ Register TagPrefix="uc1" TagName="LeftMenu" Src="Include/LeftMenu.ascx" %>
<%@ Register TagPrefix="uc1" TagName="Bottom" Src="Include/Bottom.ascx" %>
<%@ Register TagPrefix="uc1" TagName="Bottom_LS" Src="Include/Bottom_LS.ascx" %>
<%@ Register TagPrefix="cc1" Namespace="EeekSoft.Web" Assembly="EeekSoft.Web.PopupWin" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
    <head>
        <title>Human resource and Payroll - fpt.iHRPCore</title>
        
        <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR" />
        <meta content="C#" name="CODE_LANGUAGE" />
        <meta content="JavaScript" name="vs_defaultClientScript" />
        <meta content="http://schemas.microsoft.com/intellisense/ie8" name="vs_targetSchema" />
        <link href="Include/myStyles.css" type="text/css" rel="stylesheet" />
    </head>
    <body bottomMargin="0px" leftMargin="0px" topMargin="0px" onload="ShowForm(<%=blnShowForm%>)" rightMargin="0px">
        <form id="Form1" method="post" runat="server">
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        </telerik:RadScriptManager>
                    
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        </telerik:RadAjaxManager>
....................................


And userControl.ascx code:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HS_TiepNhan.ascx.cs" Inherits="FPT.DNN.Modules.PML.HS_TiepNhan" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register Assembly="jQueryDatePicker" Namespace="Westwind.Web.Controls" TagPrefix="ww" %>
<link href="../../../INC/PML.css" type="text/css" rel="stylesheet" />
<telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="ddlLoaiHoSo">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="grdHSKT" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="grdHSKT">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="grdHSKT" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManagerProxy>

<input id="msg_hidden" type="hidden" name="msg_hidden" runat="server" />


<script type="text/javascript" src="../../../INC/Common.js"></script>


<script type="text/javascript">
    var sPath = '<%= Request.ApplicationPath + "/DESKTOPMODULES/PML/Images/" %>'
    function soNgayLeave() {
        UseCallback(document.getElementById('<%= txtSoNgayGiaiQuyet.ClientID %>').value,'');
    }
    
    function OnCallback(result, context) {
        document.getElementById('<%= txtNgayHenTra.ClientID %>').value = result;alert(result);
    }
</script>

<asp:DropDownList ID="ddlLoaiHoSo" runat="server" Width="300px"
                        AutoPostBack="True"
                        onselectedindexchanged="ddlLoaiHoSo_SelectedIndexChanged"></asp:DropDownList>






<telerik:RadGrid ID="grdHSKT" runat="server" ></telerik:RadGrid>

.......................................

hongnguyenx
Top achievements
Rank 1
 answered on 15 Oct 2009
2 answers
204 views
Hi

I have a page with tabs and pageviews and all is OK. All pageviews are rendered dynamically and have userControls added to them.
One of these Pageviews has another Tab based page (UserControl), and if I apply the same dynamic rendering method there, a funny thing happens. All is OK in Firefox, but in IE 8 my pageviews, or better yet, the usercontrol I'm adding to them, show upp all over the place.

The parent page with the tabs is a customer page, and one of the tabs is "customer addresses". When that tab is clicked my pageview with customer shipping,- home,- billing adresses etc. are displayed, one in each tab. In Firefox all is OK but in IE 8 the first with "home address" is ok, but the next Tab has both "home address" and "billing address". And the even more peculiar thing is that my address ageview shows up in my parent page tabs, - almost all of them (except if my first address-tab is selected, then all is ok).

The code I'm using to add the tabs/Pageviews/ and usercontrols looks like this...

private void PopulateAddressTabs()  
        {  
            string tmpTabName = "";  
              
 
            AddressMultiPage.PageViews.Clear();  
            
            if (partyID > 0)  
            {  
                var db = new PartyDataContext();  
 
                var addresses = db.PartyAddressesGet(partyID);  
 
                foreach (var address in addresses)  
                {  
                    if (address.AddressType != null)  
                        tmpTabName = (string)GetLocalResourceObject("AddressType" + address.AddressType.id.ToString());  
                    else  
                        tmpTabName = (string)GetLocalResourceObject("AddressType0");  
 
                    AddTab(tmpTabName, "EditAddress" + address.id.ToString(), address.id, false);  
                }  
            }  
 
            AddTab((string)GetLocalResourceObject("NewAddress"), "NewAddress", -1, true);  
 
 
        }  
        private void AddTab(string tabName, string tabID, int addrID, bool isInsert)  
        {  
            RadTab tab = new RadTab();  
            tab.Text = tabName;  
            AddressTabStrip.Tabs.Add(tab);  
 
            PartyAddress userControl = (PartyAddress)LoadControl("~/Party/UserControls/PartyAddress.ascx");  
            userControl.AddressID = addrID;  
            userControl.IsInsert = isInsert;  
            userControl.PartyID = partyID;  
            userControl.ID = tabID + "_userControl";  
 
            RadPageView pageView = new RadPageView();  
            pageView.ID = tabID;  
            pageView.Controls.Add(userControl);  
            AddressMultiPage.PageViews.Add(pageView);  
 
        }  
 


Thanks for any help
Axel
Axel
Top achievements
Rank 2
 answered on 15 Oct 2009
4 answers
100 views
RadEditor version: 2009.2.701.35

I'm using the RadEditor in an ASP.NET MVC application and everything is working fine.  This is going to be a community application that allows users to post articles and such.

When a user posts an article using the RadEditor, if they upload an image to be used in the posting, I want that image to be uploaded to a folder with their user name.

Example:

Root Image upload folder: ~/UploadedImages

Folders for users:
~/UploadedImages/joe/myimage1.jpg
~/UploadedImages/joe/myimage2.jpg

~/UploadedImages/susan/myimage1.jpg
~/UploadedImages/susan/myimage2.jpg

~/UploadedImages/frank/myimage1.jpg
~/UploadedImages/frank/myimage2.jpg

etc...

I realize that I don't have access to the nice code-behind like in WebForms, and I've been looking through the Clientside API, but I can't find a good way of doing this.

Is this possible with ASP.NET MVC?

Thanks.
King Wilder
Top achievements
Rank 2
 answered on 15 Oct 2009
4 answers
246 views
I have a radgrid bound to a database containing geographical data:
Location (ex. "London")
Latitude
Longitude

The grid displays the Location field, and in a NestedViewTemplate, I display a Google Map with a marker set at the latitude/longitude coordinate.

To only allow one item to be expanded at a time, I have enabled "Single Expand" according to this article:
http://www.telerik.com/help/aspnet-ajax/grdsingleexpandinhierarchicalgrid.html

What I'd like:

1. To be able to collapse the single expanded item. Right now I can't do that. Here is my current ItemCommand eventhandler:

If e.CommandName = "ExpandCollapse" Then 
    For Each item As GridItem In e.Item.OwnerTableView.Items 
        If item.Expanded = True Then 
            item.Expanded = False 
        End If 
    Next 
End If 


2. To ajaxify the grid to prevent full-page refreshes when I expand a new item. Right now it fires an "access is denied" error if I try to ajaxify using a radAjaxManager.

A simple project that replicates my problem can be downloaded from http://www.stmtest.net/GoogleMapsGrid.zip

Note: Telerik dll's are not included in the /bin folder in .zip

Any ideas appreciated,
Jeppe Jespersen
Denmark



Soren Michelsen
Top achievements
Rank 1
 answered on 15 Oct 2009
1 answer
73 views
hello,
actually i am facing a serious problem with my application performance that using TelerikAjax Controls 3.5

I have a master page contains RadAjaxManager and RadScriptManager
also aso I alreaddy added BrowserFile.browser contains following lines

<browsers>

    <browser refID="Default">

        <controlAdapters>

            <adapter controlType="System.Web.UI.Page" adapterType="Telerik.Web.UI.RadHiddenFieldPageStateCompression" />

            <!--Uncomment the following line to use SessionStateCompression and remove ViewState from the page-->

          <adapter controlType="System.Web.UI.Page" adapterType="Telerik.Web.UI.RadSessionPageStateCompression" />

        </controlAdapters>

    </browser>

</browsers>

and I set debug=false in web.config

but unfortunatilly application performance still too bad wit size range between 1.5 to 1.9 MB

user sometimes need to wait 15 seconds to see the requested page and this is not accepted by users side
I have radGrids,trees,and another simple controls
my master file has RadTreeView in addition to RadAjaxManager and RadScript manager
my home page that takes 1.5 MB has 2 RadGrids with some textboxes...etc

really I would appreciate any quick help,
Ihab Yasin
ehabcom007@yahoo.com
Pavlina
Telerik team
 answered on 15 Oct 2009
3 answers
145 views
Hi. I want to be able to load a grid based on the selection of two radCombo boxes but I want to force the user to click an update button which loads the grid on the client based on the selections in the radCombo. I am new to the Telerik suite. I saw the demo on how to load the grid based on the user changing the selection of a radCombo but that does an automatic load. i want the user to click an update button.

Any insight would be beneficial to me...

thanks
Tsvetoslav
Telerik team
 answered on 15 Oct 2009
1 answer
102 views

 

Hi,

I'm using  a demo call update/insert/delete when the EnableViewState property of the grid is set to false.

If i press cancel  button ni editform anyway insert record.

Wha can i do?

Regards...


protected
void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)

 

{

 

if (e.CommandName == RadGrid.UpdateCommandName)

 

{

RadGrid1.DataSource =

null;

 

}

 

else if (e.CommandName == RadGrid.EditCommandName)

 

{

Session[

"initEdit"] = true;

 

Session[

"updateFlag"] = true;

 

}

 

else if (e.CommandName == RadGrid.InitInsertCommandName)

 

{

Session[

"insertFlag"] = true;

 

}

 

else if(e.CommandName == RadGrid.DeleteCommandName)

 

{

 

string ID = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["EmployeeID"].ToString();

 

 

DataTable employeesTable = (DataTable)Session["employeesTable"];

 

 

if (employeesTable.Rows.Find(ID) != null)

 

{

employeesTable.Rows.Find(ID).Delete();

employeesTable.AcceptChanges();

Session[

"employeesTable"] = employeesTable;

 

}

}

}



 

 

protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e)

 

{

 

if(Session["updateFlag"] != null && Session["initEdit"] != null)

 

{

 

DataTable employeesTable = (DataTable)Session["employeesTable"];

 

 

for (int i = 0; i < RadGrid1.EditIndexes.Count; i++)

 

{

 

GridDataItem dataItem = RadGrid1.MasterTableView.Items[RadGrid1.EditIndexes[i]] as GridDataItem;

 

 

GridEditableItem editItem = (dataItem.OwnerTableView.EditMode == GridEditMode.InPlace) ? (GridEditableItem)dataItem : (GridEditableItem)dataItem.EditFormItem;

 

 

GridEditManager mng = editItem.EditManager;

 

 

foreach (GridColumn column in dataItem.OwnerTableView.Columns)

 

{

 

if (column is IGridEditableColumn)

 

{

 

IGridEditableColumn editedColumn = column as IGridEditableColumn;

 

 

IGridColumnEditor editor = mng.GetColumnEditor(editedColumn);

 

 

string editorType = editor.ToString();

 

 

string editorText = null;

 

 

if (editor is GridTextColumnEditor)

 

{

editorText = (editor

as GridTextColumnEditor).Text;

 

}

 

try

 

 

 

 

 

{

 

DataRow[] changedRows = employeesTable.Select("EmployeeID = " + editItem.OwnerTableView.DataKeyValues[editItem.ItemIndex]["EmployeeID"]);

 

changedRows[0][column.UniqueName] = editorText;

}

 

catch (Exception ex)

 

{

RadGrid1.Controls.Add(

new LiteralControl("Unable to update Employee. Reason: " + ex.Message));

 

}

}

}

}

employeesTable.AcceptChanges();

Session[

"employeesTable"] = employeesTable;

 

Session[

"updateFlag"] = false;

 

Session[

"editIndex"] = null;

 

}

 

else if (Session["insertFlag"] != null)

 

{

 

DataTable employeesTable = (DataTable)Session["employeesTable"];

 

 

DataRow newRow = employeesTable.NewRow();

 

 

GridEditableItem insertItem = RadGrid1.MasterTableView.GetInsertItem();

 

 

GridEditManager mng = insertItem.EditManager;

 

 

foreach (GridColumn column in insertItem.OwnerTableView.Columns)

 

{

 

if (column is IGridEditableColumn)

 

{

 

IGridEditableColumn editedColumn = column as IGridEditableColumn;

 

 

IGridColumnEditor editor = mng.GetColumnEditor(editedColumn);

 

 

string editorType = editor.ToString();

 

 

string editorText = null;

 

 

if (editor is GridTextColumnEditor)

 

{

editorText = (editor

as GridTextColumnEditor).Text;

 

}

 

try

 

 

 

 

 

{

newRow[column.UniqueName] = editorText;

}

 

catch (Exception ex)

 

{

RadGrid1.Controls.Add(

new LiteralControl("Unable to insert into Employees. Reason: " + ex.Message));

 

}

}

}

 

//This should not be applied when updating directly the database

 

 

 

 

 

newRow[

"EmployeeID"] = (int)employeesTable.Rows[employeesTable.Rows.Count - 1]["EmployeeID"] + 1;

 

employeesTable.Rows.Add(newRow);

Session[

"employeesTable"] = employeesTable;

 

Session[

"insertFlag"] = null;

 

}

Session[

"initEdit"] = null;

 

RadGrid1.DataSource = (

DataTable)Session["employeesTable"];

 

}

Sebastian
Telerik team
 answered on 15 Oct 2009
Narrow your results
Selected tags
Tags
+? more
Top users last month
Simon
Top achievements
Rank 2
Iron
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Grant
Top achievements
Rank 3
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Simon
Top achievements
Rank 2
Iron
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Grant
Top achievements
Rank 3
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?