我正在写一个SharePoint Web部件,它将具有一个简单的ASP.NET窗体。我使用HtmlTextWriter来呈现控件。我遇到的问题是我的按钮似乎没有触发我分配给它的EventHandler。asp:button以编程方式创建:EventHandler不会触发
我最初宣布在CreateChildControls方法的按钮,和有线的事件处理程序:
{
Button submitButton;
submitButton = new Button();
submitButton.Text = "Go!";
submitButton.Click += new EventHandler(submitButton_Click);
Controls.Add(submitButton);
}
我已经宣布了“submitButton_Click”事件处理程序的功能:
void submitButton_Click(object sender, EventArgs e)
{
submitButton.Text = "Good!";
}
我令控制器:
protected override void RenderContents(System.Web.UI.HtmlTextWriter output)
{
RenderChildren(output);
}
最后,我部署了web部分。它在目录中显示得很好,当我将它添加到页面时,控件显示出来。但是,我认为当我点击按钮时,它的文本应该从“Go!”改变“好!”相反,它什么都不做。我对所有这些技术都很陌生 - C#,Sharepoint和ASP.NET - 所以我很确定这是我的理解中的问题,但尝试不同的步骤从所有的网络和以前的问题的文章在这里避风港不解决我的问题。谢谢参观。
编辑:我与Web部件打开的SharePoint页面上,按钮已创建像这样:
<input type="submit" name="ctl00$PlaceHolderMain$ctl00$ctl04" value="Go!" />
它看起来像的OnClick价值尚未在所有被添加,这是我认为添加EventHandler会做。我是否试图以完全错误的方式添加OnClick?我也不明白为什么按钮名称与我在代码中声明的不匹配。
我发现这绝对是我的问题的一部分。我现在将CreateChildControls方法中的click事件连接起来,并且通过在RenderContents方法中调用RenderControls(HtmlTextWriter)来渲染教程中描述的控件。然而,我仍然没有喜悦,这导致我相信我的submitButton_Click方法中的逻辑是问题。我是否试图错误地更改按钮的文本属性? – 2009-11-20 20:12:44
是submitButton类的属性吗?在submitButton.Text =“好!”后尝试添加this.SaveProperties = True; – Bravax 2009-11-20 20:44:49
你在哪里部署Web部件DLL?如果它位于Web应用程序的/ bin目录中,则在更改生效之前,您将需要回收应用程序池。 – 2009-11-21 01:00:43