我正在编写一个具有简单 ASP.NET 表单的 SharePoint Web 部件。我正在使用 HtmlTextWriter 来呈现控件。我遇到的问题是我的按钮似乎没有触发我分配给它的 EventHandler。
我最初在 CreateChildControls 方法中声明了按钮,并连接了事件处理程序:
{
Button submitButton;
submitButton = new Button();
submitButton.Text = "Go!";
submitButton.Click += new EventHandler(submitButton_Click);
Controls.Add(submitButton);
}
我已经声明了“submitButton_Click”EventHandler 的功能:
void submitButton_Click(object sender, EventArgs e)
{
submitButton.Text = "Good!";
}
我渲染控件:
protected override void RenderContents(System.Web.UI.HtmlTextWriter output)
{
RenderChildren(output);
}
最后,我部署 Web 部件。它在目录中显示得很好,当我将它添加到页面时,控件就会显示出来。但是,我会假设当我单击按钮时,它的文本应该从“开始!” “好!” 相反,它什么也不做。我对所有这些技术(C#、Sharepoint 和 ASP.NET)都很陌生,所以我很确定这是我的理解方面的问题,但是尝试从网络上的文章和以前的问题中尝试不同的步骤没有没有解决我的问题。谢谢参观。
编辑:我打开了带有 Web 部件的 SharePoint 页面,按钮的创建方式如下:
<input type="submit" name="ctl00$PlaceHolderMain$ctl00$ctl04" value="Go!" />
看起来根本没有添加 OnClick 值,这就是我认为添加 EventHandler 会做的事情。我是否试图以完全错误的方式添加 OnClick?我也不明白为什么按钮名称与我在代码中声明的名称不匹配。