![](/img/trans.png)
[英]How to make double click & single click event for link button of Asp.net control?
[英]create asp.net listbox with click\double click event
我試圖創建一個具有單擊evet的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的新手,所以...
關於代碼,您應該了解兩件事:
為了使其正常工作,您必須在控件內的任何位置(無論何時要觸發事件)都調用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());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.