UpdatePanleを手動で作成しsharepointに配置

5997 ワード

コードはネットワークに由来し、クラスライブラリプロジェクトを新規作成し、クラスUserAjaxTestを追加します.プロジェクトに強いサインをしてください.そうでないとsharepointに配備されません.WSPBuilderツールをダウンロードし、WSPを生成!sharepointに配備すればいい!
コードをテストして合格しました!
 
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI;

using System.Web.UI.WebControls;



///  "System.Web.Extensions"     .net  

///  "System.web"

namespace Sample.SayHello

{

    public class UserAjaxTest : WebPart

    {

        private Label displayName;

        private TextBox inputName;



        protected override void CreateChildControls()

        {

            base.CreateChildControls();



            //Fix for the UpdatePanel postback behaviour.

            EnsurePanelFix();



            LinkButton sayHello = new LinkButton();

            UpdatePanel refreshName = new UpdatePanel();

            ScriptManager scriptHandler = new ScriptManager();

            displayName = new Label();

            inputName = new TextBox();



            //Set up control properties.

            this.displayName.ID = "displayName";

            this.displayName.Text = "Hello!";

            this.inputName.ID = "inputName";

            sayHello.ID = "sayHello";

            sayHello.Text = "Say Hello";

            scriptHandler.ID = "scriptHandler";

            refreshName.ID = "refreshName";

            refreshName.UpdateMode = UpdatePanelUpdateMode.Conditional;

            refreshName.ChildrenAsTriggers = true;



            //Add the EventHandler to the Button.

            sayHello.Click += new EventHandler(ClickHandler);



            //Add the user interface (UI) controls to the UpdatePanel.

            refreshName.ContentTemplateContainer.Controls.Add(this.inputName);

            refreshName.ContentTemplateContainer.Controls.Add(sayHello);

            refreshName.ContentTemplateContainer.Controls.Add(this.displayName);



            //The ScriptManager control must be added first.

            this.Controls.Add(scriptHandler);

            this.Controls.Add(refreshName);

        }



        private void ClickHandler(object sender, EventArgs args)

        {

            this.displayName.Text = "Hello " + this.inputName.Text.ToString() + " !";

        }



        private void EnsurePanelFix()

        {

            if (this.Page.Form != null)

            {

                String fixupScript = @"

     _spBodyOnLoadFunctionNames.push(""_initFormActionAjax"");

     function _initFormActionAjax

     {

       if (_spEscapedFormAction == document.forms[0].action)

       {

         document.forms[0]._initialAction = 

         document.forms[0].action;

       }

     }

     var RestoreToOriginalFormActionCore = 

       RestoreToOriginalFormAction;

     RestoreToOriginalFormAction = function

     {

       if (_spOriginalFormAction != null)

       {

         RestoreToOriginalFormActionCore;

         document.forms[0]._initialAction = 

         document.forms[0].action;

       }

     }";

                ScriptManager.RegisterStartupScript(this,

                  typeof(UserAjaxTest), "UpdatePanelFixup",

                  fixupScript, true);

            }

        }

    }

}