我尝试创建一个具有点击率的asp.net列表框。 为此,我创建了一个项目,创建一个dll文件,我添加到我的Visual Studio 2008工具箱中。 这是行不通的!!!! 这是创建dll文件的代码:
namespace list_box
{
public class list_box : ListBox, IButtonControl
{
private bool blCausesValidation = true;
private string strCommandArgument = "";
private string strCommandName = "";
private string strPostBackUrl = "";
private string strText = "";
private string strValidationGroup = "";
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.CssClass = "frmbtn";
}
bool IButtonControl.CausesValidation
{
get
{
return blCausesValidation;
}
set
{
blCausesValidation = value;
}
}
string IButtonControl.CommandArgument
{
get
{
return strCommandArgument;
}
set
{
strCommandArgument = value;
}
}
string IButtonControl.CommandName
{
get
{
return strCommandName;
}
set
{
strCommandName = value;
}
}
string IButtonControl.PostBackUrl
{
get
{
return strPostBackUrl;
}
set
{
strPostBackUrl = value;
}
}
string IButtonControl.Text
{
get
{
return strText;
}
set
{
strText = value;
}
}
string IButtonControl.ValidationGroup
{
get
{
return strValidationGroup;
}
set
{
strValidationGroup = value;
}
}
public event EventHandler Click;
void click_i(object sender, EventArgs e)
{
OnClick(new EventArgs());
}
protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
click_i(this, e);
}
}
public event CommandEventHandler Command;
void Command_i(object sender, CommandEventArgs e)
{
OnCommand(new CommandEventArgs(e));
}
protected virtual void OnCommand(CommandEventArgs e)
{
if (Command != null)
{
Command_i(this, e);
}
}
}
}
帮帮我!!!!
我是asp.net的新手......
答案 0 :(得分:0)
您应该了解有关代码的两件事:
为了使其正常工作,您必须从控件中的某个位置调用OnClick(无论何时您希望触发事件)。
您在两个活动中都编码了循环引用。
改变这个:
protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
click_i(this, e);
}
}
到此:
protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
click(this, e);
}
}
并删除此内容:
void click_i(object sender, EventArgs e)
然后你所要做的就是将它添加到你的控件中(同样,你想要事件发生的地方:
this.OnClick(new EventArgs());