ASP.NET:自定义服务器控件单击事件

时间:2018-01-23 16:28:16

标签: c# asp.net events click

我正在开发一个自定义服务器控件,它在RenderContents中生成了所有html,我有一个自定义对象列表,并为每一个我绘制一个div,带有对象信息,以及顶部有两个按钮(一个用于从列表中删除对象,另一个用于打开编辑器)。 设计正确后,现在我试图附上活动,但我不知道如何做到这一点。

出于测试目的,我创建了一个通用函数:

protected void OnClick(object sender, EventArgs e) {
        System.Diagnostics.Debug.WriteLine("Yeahhhhh!");
    }

我不能这样做:

htmlWriter.AddAttribute(HtmlTextWriterAttribute.Onclick, "OnClick");

那么解决方案是什么? 在类中创建一个按钮,在渲染中实例化OnInit,调用Button.Render();

由于

编辑:

渲染RenderContents

内按钮的代码
 //...
 htmlWriter.AddAttribute(HtmlTextWriterAttribute.Name, "btSave");
 htmlWriter.AddAttribute(HtmlTextWriterAttribute.Id, "btSave");
 htmlWriter.AddAttribute(HtmlTextWriterAttribute.Value, "Save");
 htmlWriter.RenderBeginTag(HtmlTextWriterTag.Button);
 htmlWriter.Write("Save");
 htmlWriter.RenderEndTag();
 //...

其他方法,声明按钮,在onInit中实例化并渲染渲染中的按钮:

//Private var
private Button bt1;

//OnInit
protected override void OnInit(EventArgs e)
{
    bt1 = new Button();
    bt1.ID = "btSave";     
    bt1.Text = "Save";
    bt1.Width = new Unit(100, UnitType.Pixel);
    bt1.Height = new Unit(30, UnitType.Pixel);
    bt1.Click += new EventHandler(Bt1_Click);
//...



protected override void RenderContents(HtmlTextWriter htmlWriter)
{
    //Other code
    bt1.RenderControl(htmlWriter);
//...

0 个答案:

没有答案
相关问题