benSoft的PopupBox是.net里的一款不错的短消息提示控件,ASP.NET Forums中的短信提示用的就是它。但它有一点比较烦人,就是风格都是编译到dll里面的,没有办法在使用控件时通过设置属性来设置。因此如果不采用非常手段,我们要么忍受popupBox与网页的风格不协调,要么就是忍痛割爱,不使用benSoft的PopupBox。
但reflector 4.2.0.0的出现改变了以上困境。reflector是一款著名的.net反编译软件,4.2版更增加了导出源代码的功能,因此我们利用reflector,对benSoft的popupBox进行反编译。大家注意反编译的时候会出现提示,大家要选择.net framework 1.0,因为benSoft的popupBox是1.0时期的产品。
反编译后用.net 2003打开项目文件,大家可以发现它的源码文件夹里有两张图片,一张就是logo,一张就是背景图了,大家只要换掉他们,然后重新编译就可以了,注意图片的名字尽量不要该,否则就要修改代码了。修改完图片后还要修改文件夹中的benSoft.web.WebControls.PopupBox.dialog.htm文件中的css样式,否则风格不会完全统一的,主要是修改background-color这个属性,改成与你的图片颜色一致,其他风格按需要修改。
最后编译,这是可能会出现两个错误,看不懂的话没关系,把base.ReadOnly(true)改成base.ReadOnly = true,把base.get_Component()改成base.Component,再次编译,OK!如无意外,应该成功了,把生成的dll导进自己的项目,大功告成!
大家有兴趣不妨试试。
bbb.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class User_bbb : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// PopupBox1.Text = "您好, 欢迎使用<br><a href='#'><font οnclick=/"alert('作者:小山')/" style='font-weight:bold; color:red;text-decoration: underline;'>PopupBox 1.0.0.0</font></a>";
// PopupBox1.CreatePopup();
PopupBox1.Text = "aaa,test!";
PopupBox1.CreatePopup();
}
}
我应用后始终是 空白的弹出窗口
现将我的代码贴出来 仁兄有经验 请指点迷津
VS.2005
popbox.dll 复制到 bin目录下 并添加为引用
前台测试文件 代码
bbb.aspx
<%@ Register TagPrefix="ben" Namespace="benSoft.web.WebControls.PopupBox" Assembly="PopupBox" %>
...
<ben:PopupBox id="PopupBox1" runat="server"></ben:PopupBox>
...