创建 AJAX Control Toolkit 的扩展控件的过程大致可分为以下几个步骤:
-
创建一个新的 ASP.NET Web 控件库
在 Visual Studio 中创建一个新的 ASP.NET 控件库。这里需要选择“Web 控件库”作为项目类型,并且将项目命名为“AJAXControlToolKit.Extended”。在创建完成后,打开“AssemblyInfo.cs”文件,将“AssemblyVersion”属性修改为一个较小版本号,否则在后续注册控件时可能出现版本冲突的问题。 -
编写新的“ExtenderControl”扩展器控件
在“AJAXControlToolKit.Extended”项目中添加一个新的“ExtenderControl”类,并继承自“ExtenderControl”控件。在新类中实现必要的函数和方法以及自定义的属性和事件。下面是一个示例代码:
using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AJAXControlToolKit.Extended
{
[ToolboxItem(false)]
[TargetControlType(typeof(TextBox))]
public class MyExtenderControl : ExtenderControlBase
{
[ExtenderControlProperty]
[DefaultValue("")]
[IDReferenceProperty(typeof(CssStyleCollection))]
public string MyCssClass
{
get
{
return GetPropertyValue("MyCssClass", "");
}
set
{
SetPropertyValue("MyCssClass", value);
}
}
protected override IEnumerable<ScriptDescriptor> GetScriptDescriptors(Control targetControl)
{
ScriptBehaviorDescriptor descriptor = new ScriptBehaviorDescriptor("AJAXControlToolKit.Extended.MyExtenderBehavior", targetControl.ClientID);
descriptor.AddProperty("myCssClass", this.MyCssClass);
return new ScriptDescriptor[] { descriptor };
}
protected override IEnumerable<ScriptReference> GetScriptReferences()
{
ScriptReference reference = new ScriptReference();
reference.Assembly = "AJAXControlToolKit.Extended";
reference.Name = "AJAXControlToolKit.Extended.MyExtenderBehavior.js";
return new ScriptReference[] { reference };
}
}
}
- 使用 JavaScript 编写扩展器控件的客户端代码
在“AJAXControlToolKit.Extended”项目中添加一个新的 JavaScript 文件,“AJAXControlToolKit.Extended.MyExtenderBehavior.js”。在新的 JavaScript 文件中编写扩展器控件的客户端代码。下面是一个示例代码:
Type.registerNamespace("AJAXControlToolKit.Extended");
AJAXControlToolKit.Extended.MyExtenderBehavior = function(element) {
AJAXControlToolKit.Extended.MyExtenderBehavior.initializeBase(this, [element]);
this._myCssClass = "";
}
AJAXControlToolKit.Extended.MyExtenderBehavior.prototype = {
initialize : function() {
AJAXControlToolKit.Extended.MyExtenderBehavior.callBaseMethod(this, "initialize");
},
dispose : function() {
AJAXControlToolKit.Extended.MyExtenderBehavior.callBaseMethod(this, "dispose");
},
get_MyCssClass : function() {
return this._myCssClass;
},
set_MyCssClass : function(value) {
this._myCssClass = value;
}
}
AJAXControlToolKit.Extended.MyExtenderBehavior.registerClass('AJAXControlToolKit.Extended.MyExtenderBehavior', AJAXControlToolKit.ExtenderControlBehavior);
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
-
在工具箱中添加新的扩展控件
将刚刚创建的控件添加到 Ajax Control Toolkit 的工具箱中。在 Visual Studio 中打开“工具箱”,右键单击要添加控件的目标选项卡,选择“添加项”菜单,然后选择“从文件…”选项。浏览到项目输出目录中的“AJAXControlToolKit.Extended.dll”文件,选择它并点击“确定”按钮。这样就可以在工具箱中看到新的扩展控件了。 -
在 ASP.NET 页面中使用新的扩展控件
添加一些表示控件和新扩展控件的代码,并在控件上使用新的扩展器。下面是一个示例代码:
<%@ Register Assembly="AJAXControlToolKit.Extended" Namespace="AJAXControlToolKit.Extended" TagPrefix="MyExt" %>
<!DOCTYPE html>
<html>
<head>
<title>Extened control usage example</title>
<meta charset="UTF-8" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/4.5.0/1/MicrosoftAjax.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/4.5.0/1/MicrosoftAjaxWebForms.js"></script>
<script type="text/javascript" src="/Scripts/AjaxControlToolkit/Common/Common.js"></script>
<script type="text/javascript" src="/Scripts/AjaxControlToolkit/AjaxControlToolkit.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<MyExt:MyExtenderControl ID="MyExtenderControl1" runat="server" TargetControlID="TextBox1"></MyExt:MyExtenderControl>
</div>
</form>
</body>
</html>
以上就是如何创建一个 AJAX Control Toolkit 的扩展控件的详细攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何创建一个AJAXControlToolKit的扩展控件 - Python技术站