Я делаю веб-приложение на C # в .Net
Я переопределил элемент управления Panel, чтобы сделать div активируемым. Это выглядит так:
public class ProjectPanel : System.Web.UI.WebControls.Panel, System.Web.UI.IPostBackEventHandler
{
public ProjectPanel()
{
CssClass = "project";
this.Click += new EventHandler(ProjectPanel_Click);
}
public event EventHandler Click;
protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
Click(this, e);
}
}
public void RaisePostBackEvent(string eventArgument)
{
OnClick(new EventArgs());
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
this.Attributes.Add("onclick", "__doPostBack('" + this.ClientID + "', '');");
base.Render(writer);
}
public void ProjectPanel_Click(object sender, EventArgs e)
{
Label l = new Label();
l.Text = " HIYA";
this.Controls.Add(l);
}
}
Теперь, это прекрасно работает внутри страницы. Тем не менее, у меня также есть веб-пользовательский элемент управления, который выглядит следующим образом:
<div class="team">
<asp:Panel runat="server" ID="TheCanvas" CssClass="projects" />
</div>
Теперь, когда я добавляю переопределенную панель на панель TheCanvas, событие нажатия больше не регистрируется. Обратная передача происходит, но ProjectPanel_Click не запускается. Есть идеи? Я добавляю панель через код.