Telerik Forums
UI for ASP.NET AJAX Forum
2 answers
42 views
When grabbing a new skin template I saw Widgets.Default.css in the Skins directory

New control?
sitefinitysteve
Top achievements
Rank 2
Iron
Iron
Veteran
 answered on 19 Oct 2010
2 answers
467 views
Hello,

I'm using a RadGrid bound to an ASP.Net ObjectDataSource.

I want it to put all its rows in Edit Mode by clicking on a command button.

When the user has entered all values, he has to click on another command button to save the data.

In the code behind, I want each edited item to call the Update method defined in the ObjectDataSource.

But I get a GridException :
"Only items with IsInEditMode set to true can be updated"

I don't know why.

Here is the ASPX code for the DataSource + RadGrid:

<asp:ObjectDataSource runat="server" ID="ODS_FaceShoulderLength"
    SelectMethod="GetFaceShoulderLengthsForOneValue"
    TypeName="VAMTestsDB.TestsManagement.MachiningInfoManager">
</asp:ObjectDataSource>
<asp:ObjectDataSource runat="server" ID="ODS_Values"
    onselecting="ODS_Values_Selecting" SelectMethod="GetMachiningInfoValues"
    TypeName="VAMTestsDB.TestsManagement.MachiningInfoManager"
    OldValuesParameterFormatString="{0}"
    UpdateMethod="UpdateMachiningInfoValues">
    <UpdateParameters>
        <asp:Parameter Name="PTPId" Type="Int32" />
        <asp:Parameter Name="SpecimenId" Type="Int32" />
        <asp:Parameter Name="ThreadInterference1ValuePer100" Type="Decimal" />
        <asp:Parameter Name="SealInterference1ValuePer100" Type="Decimal" />
        <asp:Parameter Name="PinTaper1ValuePer100" Type="Decimal" />
        <asp:Parameter Name="BoxTaper1ValuePer100" Type="Decimal" />
        <asp:Parameter Name="ThreadInterference2ValuePer100" Type="Decimal" />
        <asp:Parameter Name="SealInterference2ValuePer100" Type="Decimal" />
        <asp:Parameter Name="PinTaper2ValuePer100" Type="Decimal" />
        <asp:Parameter Name="BoxTaper2ValuePer100" Type="Decimal" />
        <asp:Parameter Name="D1" Type="String" />
        <asp:Parameter Name="D2" Type="String" />
        <asp:Parameter Name="ThreadAxialGap" Type="String" />
        <asp:Parameter Name="W" Type="String" />
        <asp:Parameter Name="FaceShoulderLengthId" Type="Int32" />
        <asp:Parameter DbType="Guid" Name="UserId" />
    </UpdateParameters>
    <SelectParameters>
        <asp:Parameter Name="keys" Type="Object" />
    </SelectParameters>
</asp:ObjectDataSource>
<telerik:RadGrid runat="server" ID="RG_Values" DataSourceID="ODS_Values" AllowAutomaticUpdates="true"
    GridLines="None" AllowMultiRowEdit="true" AutoGenerateColumns="False"
    onitemcreated="RG_Values_ItemCreated"
    onitemcommand="RG_Values_ItemCommand" onprerender="RG_Values_PreRender">
    <MasterTableView DataSourceID="ODS_Values" EditMode="EditForms" DataKeyNames="PTPId,SpecimenId" CommandItemDisplay="TopAndBottom">
    <EditFormSettings EditFormType="Template">
        <FormTemplate>
                <tr>
                    <td colspan="5"> </td>
                    <td>
                        <telerik:RadNumericTextBox runat="server" AllowOutOfRangeAutoCorrect="true" ButtonsPosition="Right" DataType="System.Decimal" ID="NTB_TI1" MinValue="-50" MaxValue="150" ShowSpinButtons="true" Type="Number" DbValue='<%#Bind("ThreadInterference1ValuePer100") %>'>
                            <IncrementSettings InterceptArrowKeys="true" InterceptMouseWheel="true" Step="0.1" />
                            <NumberFormat AllowRounding="true" DecimalDigits="1" DecimalSeparator="." />
                            <ClientEvents OnKeyPress="onNumericKeyPress" />
                        </telerik:RadNumericTextBox>
                    </td>
                    <td>
                        <telerik:RadNumericTextBox runat="server" AllowOutOfRangeAutoCorrect="true" ButtonsPosition="Right" DataType="System.Decimal" ID="NTB_SI1" MinValue="-50" MaxValue="150" ShowSpinButtons="true" Type="Number" DbValue='<%#Bind("SealInterference1ValuePer100") %>'>
                            <IncrementSettings InterceptArrowKeys="true" InterceptMouseWheel="true" Step="0.1" />
                            <NumberFormat AllowRounding="true" DecimalDigits="1" DecimalSeparator="." />
                            <ClientEvents OnKeyPress="onNumericKeyPress" />
                        </telerik:RadNumericTextBox>
                    </td>
                    <td colspan="3"> </td>
                    <td>
                        <telerik:RadNumericTextBox runat="server" AllowOutOfRangeAutoCorrect="true" ButtonsPosition="Right" DataType="System.Decimal" ID="NTB_PT1" MinValue="0" MaxValue="100" ShowSpinButtons="true" Type="Number" DbValue='<%#Bind("PinTaper1ValuePer100") %>'>
                            <IncrementSettings InterceptArrowKeys="true" InterceptMouseWheel="true" Step="0.01" />
                            <NumberFormat AllowRounding="true" DecimalDigits="2" DecimalSeparator="." />
                            <ClientEvents OnKeyPress="onNumericKeyPress" />
                        </telerik:RadNumericTextBox>
                    </td>
                    <td>
                        <telerik:RadNumericTextBox runat="server" AllowOutOfRangeAutoCorrect="true" ButtonsPosition="Right" DataType="System.Decimal" ID="NTB_BT1" MinValue="0" MaxValue="100" ShowSpinButtons="true" Type="Number" DbValue='<%#Bind("BoxTaper1ValuePer100") %>'>
                            <IncrementSettings InterceptArrowKeys="true" InterceptMouseWheel="true" Step="0.01" />
                            <NumberFormat AllowRounding="true" DecimalDigits="2" DecimalSeparator="." />
                            <ClientEvents OnKeyPress="onNumericKeyPress" />
                        </telerik:RadNumericTextBox>
                    </td>
                    <td colspan="2"> </td>
                    <td>
                        <telerik:RadNumericTextBox runat="server" AllowOutOfRangeAutoCorrect="true" ButtonsPosition="Right" DataType="System.Decimal" ID="NTB_TI2" MinValue="-50" MaxValue="150" ShowSpinButtons="true" Type="Number" DbValue='<%#Bind("ThreadInterference2ValuePer100") %>'>
                            <IncrementSettings InterceptArrowKeys="true" InterceptMouseWheel="true" Step="0.1" />
                            <NumberFormat AllowRounding="true" DecimalDigits="1" DecimalSeparator="." />
                            <ClientEvents OnKeyPress="onNumericKeyPress" />
                        </telerik:RadNumericTextBox>
                    </td>
                    <td>
                        <telerik:RadNumericTextBox runat="server" AllowOutOfRangeAutoCorrect="true" ButtonsPosition="Right" DataType="System.Decimal" ID="NTB_SI2" MinValue="-50" MaxValue="150" ShowSpinButtons="true" Type="Number" DbValue='<%#Bind("SealInterference2ValuePer100") %>'>
                            <IncrementSettings InterceptArrowKeys="true" InterceptMouseWheel="true" Step="0.1" />
                            <NumberFormat AllowRounding="true" DecimalDigits="1" DecimalSeparator="." />
                            <ClientEvents OnKeyPress="onNumericKeyPress" />
                        </telerik:RadNumericTextBox>
                    </td>
                    <td colspan="3"> </td>
                    <td>
                        <telerik:RadNumericTextBox runat="server" AllowOutOfRangeAutoCorrect="true" ButtonsPosition="Right" DataType="System.Decimal" ID="NTB_PT2" MinValue="0" MaxValue="100" ShowSpinButtons="true" Type="Number" DbValue='<%#Bind("PinTaper2ValuePer100") %>'>
                            <IncrementSettings InterceptArrowKeys="true" InterceptMouseWheel="true" Step="0.01" />
                            <NumberFormat AllowRounding="true" DecimalDigits="2" DecimalSeparator="." />
                            <ClientEvents OnKeyPress="onNumericKeyPress" />
                        </telerik:RadNumericTextBox>
                    </td>
                    <td>
                        <telerik:RadNumericTextBox runat="server" AllowOutOfRangeAutoCorrect="true" ButtonsPosition="Right" DataType="System.Decimal" ID="NTB_BT2" MinValue="0" MaxValue="100" ShowSpinButtons="true" Type="Number" DbValue='<%#Bind("BoxTaper2ValuePer100") %>'>
                            <IncrementSettings InterceptArrowKeys="true" InterceptMouseWheel="true" Step="0.01" />
                            <NumberFormat AllowRounding="true" DecimalDigits="2" DecimalSeparator="." />
                            <ClientEvents OnKeyPress="onNumericKeyPress" />
                        </telerik:RadNumericTextBox>
                    </td>
                    <td>
                        <asp:TextBox runat="server" ID="TB_D1" TextMode="MultiLine" Rows="5" cols="20" Text='<%#Bind("D1") %>' />
                    </td>
                    <td>
                        <asp:TextBox runat="server" ID="TB_D2" TextMode="MultiLine" Rows="5" cols="20" Text='<%#Bind("D2") %>' />
                    </td>
                    <td>
                        <asp:TextBox runat="server" ID="TB_TAG" TextMode="MultiLine" Rows="5" cols="20" Text='<%#Bind("ThreadAxialGap") %>' />
                    </td>
                    <td>
                        <asp:TextBox runat="server" ID="TB_W" TextMode="MultiLine" Rows="5" cols="20" Text='<%#Bind("W") %>' />
                    </td>
                    <td>
                        <asp:DropDownList ID="DDL_FaceShoulderLength" runat="server"
                            DataSourceID="ODS_FaceShoulderLength" DataTextField="Name" DataValueField="Id"
                            SelectedValue='<%# Bind("FaceShoulderLengthId") %>'>
                        </asp:DropDownList>
                    </td>
                </tr>
        </FormTemplate>
    </EditFormSettings>
    <RowIndicatorColumn>
            <HeaderStyle Width="20px" />
        </RowIndicatorColumn>
        <ExpandCollapseColumn>
            <HeaderStyle Width="20px" />
        </ExpandCollapseColumn>
        <Columns>
            <telerik:GridBoundColumn DataField="PTPReference" HeaderText="PTP"
                ReadOnly="true" SortExpression="PTPReference" UniqueName="PTPReference">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="PinName" HeaderText="Pin" ReadOnly="true"
                SortExpression="PinName" UniqueName="PinName">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="BoxName" HeaderText="Box" ReadOnly="true"
                SortExpression="BoxName" UniqueName="BoxName">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ThreadInterference1Type" HeaderText="TI1"
                HeaderTooltip="Thread Interference 1" ReadOnly="true"
                SortExpression="ThreadInterference1Type" UniqueName="ThreadInterference1Type">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="SealInterference1Type" HeaderText="SI1"
                HeaderTooltip="Seal Interference 1" ReadOnly="true"
                SortExpression="SealInterference1Type" UniqueName="SealInterference1Type">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ThreadInterference1Value"
                DataType="System.Decimal" HeaderText="TI1 Value"
                HeaderTooltip="Thread Interference 1 Value" DataFormatString="{0:###.#%}"
                SortExpression="ThreadInterference1Value" UniqueName="ThreadInterference1Value">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="SealInterference1Value" DataFormatString="{0:###.#%}"
                DataType="System.Decimal" HeaderText="SI1 Value"
                HeaderTooltip="Seal Interference 1 Value"
                SortExpression="SealInterference1Value" UniqueName="SealInterference1Value">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="PinTaper1Type" HeaderText="PT1"
                HeaderTooltip="Pin Taper 1" ReadOnly="true" SortExpression="PinTaper1Type"
                UniqueName="PinTaper1Type">
            </telerik:GridBoundColumn>
            <telerik:GridCheckBoxColumn DataField="PinDoubleThreadTaper1"
                DataType="System.Boolean" HeaderText="PDTT 1 ?"
                HeaderTooltip="Pin Double Thread Taper 1 ?" ReadOnly="true"
                SortExpression="PinDoubleThreadTaper1" UniqueName="PinDoubleThreadTaper1">
            </telerik:GridCheckBoxColumn>
            <telerik:GridBoundColumn DataField="BoxTaper1Type" HeaderText="BT1"
                HeaderTooltip="Box Taper 1" ReadOnly="true" SortExpression="BoxTaper1Type"
                UniqueName="BoxTaper1Type">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="PinTaper1Value" DataType="System.Decimal" DataFormatString="{0:###.##%}"
                HeaderText="PT1 Value" HeaderTooltip="Pin Taper 1 Value"
                SortExpression="PinTaper1Value" UniqueName="PinTaper1Value">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="BoxTaper1Value" DataType="System.Decimal" DataFormatString="{0:###.##%}"
                HeaderText="BT1 Value" HeaderTooltip="Box Taper 1 Value"
                SortExpression="BoxTaper1Value" UniqueName="BoxTaper1Value">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ThreadInterference2Type" HeaderText="TI2"
                HeaderTooltip="Thread Interference 2" ReadOnly="true"
                SortExpression="ThreadInterference2Type" UniqueName="ThreadInterference2Type">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="SealInterference2Type" HeaderText="SI2"
                HeaderTooltip="Seal Interference 2" ReadOnly="true"
                SortExpression="SealInterference2Type" UniqueName="SealInterference2Type">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ThreadInterference2Value" DataFormatString="{0:###.#%}"
                DataType="System.Decimal" HeaderText="TI2 Value"
                HeaderTooltip="Thread Interference 2 Value"
                SortExpression="ThreadInterference2Value" UniqueName="ThreadInterference2Value">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="SealInterference2Value" DataFormatString="{0:###.#%}"
                DataType="System.Decimal" HeaderText="SI2 Value"
                HeaderTooltip="Seal Interference 2 Value"
                SortExpression="SealInterference2Value" UniqueName="SealInterference2Value">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="PinTaper2Type" HeaderText="PT2"
                HeaderTooltip="Pin Taper 2" ReadOnly="true" SortExpression="PinTaper2Type"
                UniqueName="PinTaper2Type">
            </telerik:GridBoundColumn>
            <telerik:GridCheckBoxColumn DataField="PinDoubleThreadTaper2"
                DataType="System.Boolean" HeaderText="PDTT 2 ?"
                HeaderTooltip="Pin Double Thread Taper 2 ?" ReadOnly="true"
                SortExpression="PinDoubleThreadTaper2" UniqueName="PinDoubleThreadTaper2">
            </telerik:GridCheckBoxColumn>
            <telerik:GridBoundColumn DataField="BoxTaper2Type" HeaderText="BT2"
                HeaderTooltip="Box Taper 2" ReadOnly="true" SortExpression="BoxTaper2Type"
                UniqueName="BoxTaper2Type">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="PinTaper2Value" DataType="System.Decimal" DataFormatString="{0:###.##%}"
                HeaderText="PT2 Value" HeaderTooltip="Pin Taper 2 Value"
                SortExpression="PinTaper2Value" UniqueName="PinTaper2Value">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="BoxTaper2Value" DataType="System.Decimal" DataFormatString="{0:###.##%}"
                HeaderText="BT2 Value" HeaderTooltip="Box Taper 2 Value"
                SortExpression="BoxTaper2Value" UniqueName="BoxTaper2Value">
            </telerik:GridBoundColumn>
            <telerik:GridTemplateColumn HeaderText="D1" UniqueName="D1">
                <ItemTemplate>
                    <div class="autocut" title='<%#Eval("D1") %>'><%#Eval("D1") %></div>
                </ItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridTemplateColumn HeaderText="D2" UniqueName="D2" ItemStyle-Width="50px">
                <ItemTemplate>
                    <div class="autocut" title='<%#Eval("D2") %>'><%#Eval("D2")%></div>
                </ItemTemplate>
                <ItemStyle Width="50px" />
            </telerik:GridTemplateColumn>
            <telerik:GridBoundColumn DataField="ThreadAxialGap" DataType="System.String"
                HeaderText="TAG" HeaderTooltip="Thread Axial Gap"
                SortExpression="ThreadAxialGap" UniqueName="ThreadAxialGap">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="W" DataType="System.String" HeaderText="W"
                SortExpression="W" UniqueName="W">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn HeaderText="FSL"
                HeaderTooltip="Face Shoulder Length" DataField="FaceShoulderLength" DataType="System.String" SortExpression="FaceShoulderLength" UniqueName="FaceShoulderLength">
            </telerik:GridBoundColumn>                       
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

And the code behind:

protected void RG_Values_ItemCreated(object sender, GridItemEventArgs e)
{
    if (e.Item is GridCommandItem)
    {
        GridCommandItem cmdItem = e.Item as GridCommandItem;
 
        cmdItem.Controls.Clear();
 
        TableCell commandCell = new TableCell();
        cmdItem.Controls.Add(commandCell);
        if (!this.IsInEditMode)
        {
            Button editButton = new Button();
            editButton.Text = "Edit";
            editButton.CommandName = "EditAll";
            commandCell.Controls.Add(editButton);
        }
        else
        {
            Button saveButton = new Button();
            saveButton.Text = "Save";
            saveButton.CommandName = "SaveAll";
            commandCell.Controls.Add(saveButton);
        }
    }
}
 
protected void RG_Values_ItemCommand(object sender, GridCommandEventArgs e)
{
    if (e.CommandName == "EditAll")
    {
        this.IsInEditMode = true;
    }
    else if (e.CommandName == "SaveAll")
    {
        foreach (GridDataItem item in this.RG_Values.EditItems)
        {
            if (item.Edit)
            {
                item.FireCommandEvent("Update", null);
                item.Edit = false;
            }
        }
    }
}
protected void RG_Values_PreRender(object sender, EventArgs e)
{
    foreach (GridItem item in this.RG_Values.Items)
    {
        item.Edit = this.IsInEditMode;
    }
    this.RG_Values.Rebind();
}

Any help would be appreciated !

Thanks

Vince


DEWISME Vincent
Top achievements
Rank 1
 answered on 19 Oct 2010
3 answers
98 views
I am new to Telerik controls.  I am attempting to bind data to a rad grid using the NeedDataSource event.  I am using a MySql database.
My current C# code is. 

        protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {

            long ll_error;

            CommandType CommandType = CommandType.Text;

            dbConn = System.Configuration.ConfigurationManager.AppSettings["MYSQLDBConn"].ToString();

            MySqlConnection connection = new MySqlConnection(dbConn);

            connection.Open();

            MySqlCommand command = new MySqlCommand("SELECT * FROM syslookup;", connection);

            command.CommandType = CommandType;

            MySqlDataAdapter _DataAdapter = new MySqlDataAdapter();
            _DataAdapter.SelectCommand = command;

            DataTable myDataTable = new DataTable();

            ll_error = _DataAdapter.Fill(myDataTable);

            RadGrid1.DataSource = myDataTable;
           
        }

In the debugger I can see that the datasource has rows in it, but the grid will not show anything.  It just says no records to display.  Is there something I am missing or some property that needs to be set that I do not know about.  Thanks.
Michael
Top achievements
Rank 1
 answered on 19 Oct 2010
1 answer
105 views
Hello,

1. I have a listbox with checkboxes items.
    lets say i have added a header template and inside i put a button and call it "CheckAll".
    From the client side (JS) i would like to click on the button and then to check all the items, another click on the same button will uncheck all the items.
It is very important to me do it from a button in the header of the listbox and not from a checkbox named "All" like in your demo
whether it's a problem to do it from a button in the header, how to do it from a button out of the listbox controll?

JS examples will be appreciate.

Regards,
Oren
Yana
Telerik team
 answered on 19 Oct 2010
1 answer
167 views
I have created RadListBox controls with checkboxes on a web page, but the styling of the rendered list elements shows the items on two lines, as in the attached graphic.  Here is the markup:

<

 

 

telerik:RadListBox ID="lstStandards" runat="server"

 

 

 

CssClass="RadListBox" CheckBoxes="true" Height="200" Width="200" />

 


How can I get the entries to display on one line per entry?

Several other listbox questions:

1. There are code examples of automatically checking the checkbox when a list item is selected, but I would like to see how the code should be called from the control.

2. How could I set the properterties of the control so that only the checkboxes can be used to select/unselect items?

Rich Sorensen
Lenny_shp
Top achievements
Rank 2
 answered on 19 Oct 2010
4 answers
208 views
Hi all!

I would like to create a filter for checkbox of RadGrid (it's on the left column of RadGrid which controlled by Telerik)
For example, the customer selected some of CARS in my RadGrid.
If there's a filter upon the Checkbox column, he/she can choose "Filter Selected"
Then, just all the selected Cars are displayed in the RadGrid.

Thanks!

Andy.
Andy
Top achievements
Rank 1
 answered on 19 Oct 2010
1 answer
195 views
Hi all,

I am using a Rad Grid in my Solution.
At such a stage i want to hide/show a column on the checked change of the Checkbox.

I can hide/show the column by its uniquename but when but onClick of checkbox i have written some javascript which accepts the column index.i have used following code 
RadGrid1.get_masterTableView().showColumn(index);  RadGrid1.get_masterTableView().hideColumn(index); 

Now the Problem is that how can i get the Index of the Column by its Column Name.

Thanks in Advance..
Shinu
Top achievements
Rank 2
 answered on 19 Oct 2010
2 answers
257 views
Hello All.
 
           I had design one search page, search page have top left side radtextbox, bottom left side treeview which will bind from database,right side gridview.

           I had used jquery autocomplete textbox functionality for searching result from textbox, when user select any value from textbox and press enter key i have to fire treeview node click event from server side, because using treeview nodeclick event i already bind the right side grid , same thing would happen on textbox enter event.

           Can you please suggest me how can i achieve this functionality.

Thanks.
Kaushal
Top achievements
Rank 1
 answered on 19 Oct 2010
1 answer
89 views
I created an application in VS2008 and Vs 2005 using the radtabstrip. I had expected the tab strip to look the same but somehow they are different. Can anyone tell me how I can make the VS2005 tab strip to  look like the one generated by Vs 2008. They were developed using the .Net 2.0 components.

Vasil
Telerik team
 answered on 19 Oct 2010
3 answers
104 views
I created a Asp.net page using VS2008 (using .Net framework 2.0) and tried opening the page on Vs2005 (both have telerik installed but the 2005 install cannot render the Ajax panel form telerik. How can I open and edit the files in Vs2005? I assume this should be possbil since I am using the 2.0 framework.
Vasil
Telerik team
 answered on 19 Oct 2010
Narrow your results
Selected tags
Tags
+? more
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Andrey
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Andrey
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?