2

Web パーツを作成しましたが、5 つの構成があります。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");

しかし、ボタンをクリックすると、次のように表示されました:null参照例外、構成を編集したものに関係なく、変数は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
4

2 に答える 2

1

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から継承しているため、プロパティの参照は常にnullになります。

したがって、最初に小道具を設定しない場合は、次のようにコードを変更する必要があります。

    string subject = this.WebPart.SUBJECT as string;
    string emailAddrS = this.WebPart.EMAILADDR as string;
    string checkout_changes = this.WebPart.CHECKOUTLISTSNAMES as string; 
于 2012-10-11T18:16:03.797 に答える