手柄单击事件自定义服务器控件
问题描述:
我有控制用的ImageButton:手柄单击事件自定义服务器控件
...
ImageButton btn;
public MyControl()
{
btn = new ImageButton();
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Page.RegisterRequiresPostBack(this);
}
protected override void CreateChildControls()
{
btn.Height = Height;
btn.Width = Height;
btn.Click += new System.Web.UI.ImageClickEventHandler(RaiseLeftClickEvent);
}
private void RaiseLeftClickEvent(object sender, ImageClickEventArgs e)
{
throw new NotImplementedException();
}
当我点击没有按钮的Click事件触发。
答
我认为你必须创建的OnInit范围click事件..
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Page.RegisterRequiresPostBack(this);
base.CreateChildControls();
btn.Click += new System.Web.UI.ImageClickEventHandler(RaiseLeftClickEvent);
}
UPDATE:
首先,基类的控制必须是WebControl类。
而且还是OnInit范围定义按钮的事件:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Page.RegisterRequiresControlState(this);
Controls.Clear();
base.CreateChildControls();
btn.Click += btnImageButton_Click;
Controls.Add(btn);
}
void btnImageButton_Click(object sender, EventArgs e)
{
//Handle Click event..
}
希望这有助于..
这并不帮助,但想法正确 –
我认为有大约RaiseLeftClickEvent参数的问题。你确定RaiseLeftClickEvent的定义是正确的吗? –
这种方法是自动生成的。 –