我正在开发一个自定义服务器控件,它在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);
//...