NewsRotator widget: Create an empty custom control
The custom controls are independent from the project, which they are being used in. They consist of a single dll, which can be reused across different applications.
To create a control of this type, you must first create an empty custom control. The control can reside in Sitefinity solution or in another solution. You will create a control in the scope of the Sitefinity's solution.
To create an empty custom control, perform the following:
- From the context menu of Sitefinity solution, click Add » New project...
-
From the dialog choose Visual C# » Web » ASP.NET Server Control.
-
Name the project NewsRotator and click OK.
A new project is generated under the solution. It contains only a single .cs file named ServerControl1.
-
Rename the file to NewsRotator.cs. You must also rename the class name inside the file to NewsRotator.
NOTE: Make sure your class library targets version 4.0 of the .NET Framework. To verify right-click the NewsRotator class library and select Properties. From the Application menu item, select the target framework.
-
Open the file and remove any auto-generated code besides the class definition. The code inside your NewsRotator.cs file must look like this:
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Linq;
using
System.Text;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
namespace
NewsRotator
{
public
class
NewsRotator : WebControl
{
}
}
Inheriting the SimpleView class
In Sitefinity, you can create your controls as standard ASP.NET custom controls or you can derive them from one of the built-in base classes - SimpleView, SimpleScriptView. They provide you with additional features, which, for example, are not available in the WebControl class.
In this tutorial you derive the NewsRotator control from the SimpleView class. To do this, you must add a reference to theTelerik.Sitefinity.dll in your NewsRotator project. To do so, follow these steps:
- Form the context menu of project NewsRotator, click Add Reference...
- In the dialog select the Browse tab.
- The Telerik.Sitefinity assembly is located in folder Telerik.Sitefinity.Samples.Dependencies from our Github repository. Select it and click OK.
-
Open the NewsRotator.cs and import the following using statement: using Telerik.Sitefinity.Web.UI;
-
Modify the class definition to the following:
public
class
NewsRotator : SimpleView
{
protected
override
void
InitializeControls(GenericContainer container)
{
throw
new
NotImplementedException();
}
protected
override
string
LayoutTemplateName
{
get
{
throw
new
NotImplementedException();
}
}
}
For the project to compile at this stage, you must also override the InitializeControls abstract method and the LayoutTemplateNameproperty.
The InitializeControls method is the place where you must address the UI elements, which are placed in a template of the control. TheLayoutTemplateName specifies the name for the default template of your control.
Referencing the control
You must reference the control's assembly in the Sitefinity project. In this tutorial the control and Sitefinity project are located in one and the same solution. To add a reference, perform the following:
- From the context menu of Sitefinity project, click Add Reference...
- Click Projects tab.
- Select the NewsRotator project and click OK. The reference is added and you can register and use the control in your Sitefinity application.