0

学生をリストしたビジュアルWebパーツがあります。

学生を追加/編集するためのWebパーツもあります。

アプリケーションをデプロイした後、新しいWebパーツページを作成し、あるゾーンにCreateStudent Webパーツを追加し、別のゾーンにListStudentWebパーツを追加しました。

学生を追加するときは、ListStudentWebパーツのグリッドでその学生の詳細を見つける必要があります。

CreateStudent WebパーツをプロバイダーWebパーツとして、ListStudent WebパーツをコンシューマーWebパーツとして作成する2つのWebパーツを接続する必要があると思いますが、疑問は、ListStudentWebパーツに特定の値を渡す必要がないことです。

ListStudent WebパーツPage_Loadで、グリッドビューのデータソースを設定してバインドする関数呼び出しがあります。これはどのように行うことができますか?

4

2 に答える 2

1

ここにあなたのニーズを満たすリンクがあります、

役に立つと思います。

http://www.dotnetcurry.com/ShowArticle.aspx?ID=678

よろしくお願いします。

それはあなたのニーズを正確に満たす別のリンクです、

http://blogs.msdn.com/b/pranab/archive/2008/07/02/step-by-step-creating-connected-sharepoint-web-parts-using-iwebpartfield-interface-and-using-editor- part-and-user-controls.aspx

于 2012-09-07T06:09:26.680 に答える
0

これが単純なプロバイダーとコンシューマーのWebパーツです。プロバイダーUIは、単に出力するコンシューマーWebパーツに渡すテキストフィールドを受け入れます。Webパーツ間の接続は、次のインターフェイスです。

namespace ConnectedWebParts
{
    public interface IParcel
    {
        string ID { get; }
    }
}

プロバイダーWebパーツはこのインターフェイスを実装し、それ自体を返す属性ConnectionProviderを持つメソッドを持っている必要があります(インターフェイスを実装しているため)。

namespace ConnectedWebParts
{
    public class ProviderWebPart : WebPart, IParcel
    {
        protected TextBox txtParcelID;
        protected Button btnSubmit;
        private string _parcelID = "";

        protected override void CreateChildControls()
        {
            txtParcelID = new TextBox() { ID = "txtParcelID" };
            btnSubmit = new Button() { ID = "btnSubmit", Text="Submit"};
            btnSubmit.Click += btnSubmit_Click;
            this.Controls.Add(txtParcelID);
            this.Controls.Add(btnSubmit);
        }

        void btnSubmit_Click(object sender, EventArgs e)
        {
            _parcelID = txtParcelID.Text;
        }

        [ConnectionProvider("Parcel ID")]
        public IParcel GetParcelProvider()
        {
             return this;
        }

        string IParcel.ID
        {
             get { this.EnsureChildControls();  return _parcelID; }
        }
     }
 }

コンシューマーWebパーツは、接続インターフェース(プロバイダーWebパーツ)をパラメーターとして実装するオブジェクトを受け入れるConnectionConsumer属性を持つメソッドを定義する必要があります。

namespace ConnectedWebParts
{
    public class ConsumerWebPart : WebPart
    {
        protected IParcel _provider;
        protected Label lblParcelID;
        protected override void CreateChildControls()
        {
            lblParcelID = new Label();
            if (_provider != null && !String.IsNullOrEmpty(_provider.ID))
                lblParcelID.Text = _provider.ID;    

            this.Controls.Add(lblParcelID);
        }

        [ConnectionConsumer("Parcel ID")]
        public void RegisterParcelProvider(IParcel provider)
        {
            _provider = provider;
        }
    }
}
于 2012-09-09T21:04:29.367 に答える