SharePoint 2013 Web 部件按钮单击事件未触发
Posted
技术标签:
【中文标题】SharePoint 2013 Web 部件按钮单击事件未触发【英文标题】:SharePoint 2013 web part button click event not firing 【发布时间】:2015-05-20 12:08:55 【问题描述】:我正在使用 Cloud 9 视频作为教程构建我的第一个 Hello World Web 部件。
我正在使用带有 SharePoint 2013、SQL Server 2012 和 VS Premium 2013 Update 4 的 Azure VM。
Web 部件是一个带有按钮和标签的简单文本框。点击事件触发一个方法,将标签的文本设置为“你好”+文本框中的文本。
protected void btnSubmitThis_Click(object sender, EventArgs e)
lblOutput.Text = "Hello, " + txtTextBox.Text;
我已经能够推送我的 Web 部件并将其插入到我的 SharePoint 2013 主页中。
点击甚至什么都不做。实际上,在调试中运行时,我可以看到构造函数 OnInit() 和 Page_Load() 都执行了,但 btnSubmitThis_Click() 没有执行。
Web 部件确实附加了一个 ascx.g.cs 文件。
我可以看到该文件还包含以下代码,表明事件确实正确处理了该方法:
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
[GeneratedCodeAttribute("Microsoft.VisualStudio.SharePoint.ProjectExtensions.CodeGenerators.SharePointWebP" +
"artCodeGenerator", "12.0.0.0")]
private global::System.Web.UI.WebControls.Button @__BuildControlbtnSubmitThis()
global::System.Web.UI.WebControls.Button @__ctrl;
@__ctrl = new global::System.Web.UI.WebControls.Button();
this.btnSubmitThis = @__ctrl;
@__ctrl.ApplyStyleSheetSkin(this.Page);
@__ctrl.ID = "btnSubmitThis";
@__ctrl.Text = "Submit";
@__ctrl.Click -= new System.EventHandler(this.btnSubmitThis_Click);
@__ctrl.Click += new System.EventHandler(this.btnSubmitThis_Click);
return @__ctrl;
我可以看到没有产生任何错误,点击事件根本没有调用该方法。
我会在这里遗漏什么?
我已经准备好回答任何问题,因为我真的很想解决这个问题,而且我已经花了几天时间自己尝试。
非常感谢您的帮助。
请求添加的代码:
ascx:
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HelloWorldWebPart.ascx.cs" Inherits="HelloWorld.HelloWorldWebPart.HelloWorldWebPart" %>
<p>
Name:
<asp:TextBox ID="txtTextBox" runat="server"></asp:TextBox>
<asp:Button ID="btnSubmitThis" runat="server" OnClick="btnSubmitThis_Click" Text="Submit" />
</p>
<asp:Label ID="lblOutput" runat="server"></asp:Label>
ascx.cs:
using System;
using System.ComponentModel;
using System.Web.UI.WebControls.WebParts;
namespace HelloWorld.HelloWorldWebPart
[ToolboxItemAttribute(false)]
public partial class HelloWorldWebPart : WebPart
// Uncomment the following SecurityPermission attribute only when doing Performance Profiling on a farm solution
// using the Instrumentation method, and then remove the SecurityPermission attribute when the code is ready
// for production. Because the SecurityPermission attribute bypasses the security check for callers of
// your constructor, it's not recommended for production purposes.
// [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Assert, UnmanagedCode = true)]
public HelloWorldWebPart()
protected override void OnInit(EventArgs e)
base.OnInit(e);
InitializeControl();
protected void Page_Load(object sender, EventArgs e)
int Test = 0;
protected void btnSubmitThis_Click(object sender, EventArgs e)
lblOutput.Text = "Hello, " + txtTextBox.Text;
【问题讨论】:
可视 WebPart 或 WebPart ?如果visual WP发布ascx,否则发布webpart的构造函数。我怀疑你没有在标记上绑定点击事件。 嗨,马克斯。可视 WebPart。我正在将代码添加到 ascx 我认为标记中缺少一些对象?按钮和标签? 确实被截断了。 您是否在测试页上添加了 Web 部件?从管理面板显示 Web 部件时不要尝试单击按钮。 【参考方案1】:它不想作为沙盒解决方案工作。虽然在农场解决方案中调试更难,但它似乎更健壮。
【讨论】:
以上是关于SharePoint 2013 Web 部件按钮单击事件未触发的主要内容,如果未能解决你的问题,请参考以下文章
带有常用按钮菜单栏的 Sharepoint 2013 列表视图
创建加载用户控件的 SharePoint 2013 Web 部件
将 SharePoint 2013 WSP(Web 部件)迁移到 SharePoint 2019(本地)[关闭]
Sharepoint 2013 中的 Ajax 连接 Web 部件
如何在 SharePoint2013 的 SharePoint Web Access Web 部件中访问 Excel PROTECTED 电子表格?