Вы должны либо поместить этот код в App_Code, либо построить его в сборке. Затем в ASPX вам нужна директива @Register, которая будет включать пространство имен с вашим новым элементом управления. Если вы поместите его в App_Code, сборка будет App_Code. Затем, когда он включен, вы можете создать его на странице с заданным префиксом тега. Вот что я имею в виду:
<%@ Page Language="C#"%>
<%@ Register Assembly="MyBuiltAssembly" Namespace="CustomTreeViewNamespace" TagPrefix="test" %>
...
<test:CustomTreeView ID="CustomTreeView1" runat="server">