在ASP.NET 2.0环境中,可以使用ASP.NET AJAX Extensions来创建和使用服务器端控件。本文将介绍如何实现一个信息框(InfoBox)控件,该控件可以在页面上显示消息,并且可以适应HTTP提交模式和AJAX回调显示消息。
“Memba Velodoc XP Edition”是一个开源控件集合,其中包含了本文将要使用的InfoBox控件。可以从Codeplex、Google Code或SourceForge.NET下载这些控件,它们在GPL许可下分发。
在Visual Studio 2005中,创建一个新的ASP.NET AJAX启用的网站,并添加对Memba.WebControls.XP.dll的引用,该DLL包含InfoBox服务器控件。源代码可在上述下载位置获取。
打开Default.aspx页面,并添加InfoBox服务器控件,可以通过将控件拖放到工具箱中然后拖放到页面上,或者简单地在现有的
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server" />
<mbui:InfoBox ID="InfoBox" runat="server" Text="Hello World" Width="400px" CssClass="cssInfoBox" TextCssClass="cssInfoBoxText"></mbui:InfoBox>
<br />
<br />
<select id="cboType">
<option>Error</option>
<option selected="selected">Information</option>
<option>Ok</option>
<option>Warning</option>
</select>
<input id="txtMessage" type="text" value="Test message" />
<input id="btnAll" type="button" value="set all" />
<input id="btnTemp" type="button" value="set temp" />
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="submit" />
</form>
可能需要在页面顶部注册控件,使用以下语句:
<%@ Register Assembly="Memba.WebControls.XP" Namespace="Memba.WebControls" TagPrefix="mbui" %>
此外,添加一个HTML下拉列表(cboType)、一个HTML文本框(txtMessage)、两个HTML按钮(btnAll和btnTemp)以及一个ASP.NET提交按钮(btnSubmit)。
InfoBox控件是一个具有一行两列的表格,第一列包含图像,第二列嵌入一个span用于文本。注意InfoBox控件的text属性可以使用本地化资源,并且可以使用ASP.NET主题进行皮肤设置。
显然,可以使用服务器端代码设置图标和文本。双击ASP.NET提交按钮,并实现Click事件处理程序如下:
protected void btnSubmit_Click(object sender, EventArgs e)
{
InfoBox.Type = Memba.WebControls.InfoBoxType.OK;
InfoBox.Text = "Submission complete";
}