gpt4 book ai didi

c# - Web 部件中的 NullReferenceException

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:10 25 4
gpt4 key购买 nike

我创建了一个 web 部件,有五种配置:在 usercontrol.ascx 中,我通过以下代码获取值:

namespace tasks_email.tasks_email_webpart
{
public partial class tasks_email_webpartUserControl : UserControl
{

public tasks_email_webpart WebPart { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_send_id_Click(object sender, EventArgs e)
{

string subject = " ";
subject = this.WebPart.SUBJECT as string;
string emailAddrS = " ";
emailAddrS = this.WebPart.EMAILADDR as string;
string checkout_changes = " ";
checkout_changes = this.WebPart.CHECKOUTLISTSNAMES as string;
SendCheckout("bo.wang@us.bnpparibas.com", subject, "this is a project test");

但是当我点击按钮时,它说:空引用异常,无论我编辑配置什么东西,变量都无法获取 SUBJECT 值

任何人都可以告诉我如何处理吗?

*我检查了 webpart.cs,我确实是这样写的:

    namespace tasks_email.tasks_email_webpart
{
[ToolboxItemAttribute(false)]
public class tasks_email_webpart : Microsoft.SharePoint.WebPartPages.WebPart
{

[WebBrowsable(true), Category("Configurations"), Personalizable(PersonalizationScope.Shared), WebDisplayName("Subject")]
public string SUBJECT { get; set; }

在 ascx 中,我使用以下方法创建了一个按钮:

<asp:Button ID="btn_send_id" runat="server" Text=" Email_changes " 
onclick="btn_send_id_Click" CssClass="Search_Submit" onclientclick="return checkna()"
/>

错误报告:

[NullReferenceException: Object reference not set to an instance of an object.]
tasks_email.tasks_email_webpart.tasks_email_webpartUserControl.btn_send_id_Click(Object sender, EventArgs e) +375
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +114
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +139
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +28
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2980

最佳答案

当您开发 SP2010 可视化 Web 部件时,您应该始终从 Microsoft.SharePoint.WebPartPages.WebPart 继承,因此您的部件看起来像这样:

[ToolboxItemAttribute(false)]
public class MyWebPart : Microsoft.SharePoint.WebPartPages.WebPart
{

[Personalizable(), WebBrowsable, Category("GPWF Settings")]
public string WebClientUrl { get; set; }

}

因为您是从 UserControl 继承的,所以您总是获得对属性的空引用。

所以如果你不先设置你的 Prop ,你应该像这样修改你的代码:

    string subject = this.WebPart.SUBJECT as string;
string emailAddrS = this.WebPart.EMAILADDR as string;
string checkout_changes = this.WebPart.CHECKOUTLISTSNAMES as string;

关于c# - Web 部件中的 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12845807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com