【问题标题】:Refresh a list webpart to reflect the item added in sharepoint 2010 developed using visual studio 2010刷新列表 webpart 以反映在使用 Visual Studio 2010 开发的 sharepoint 2010 中添加的项目
【发布时间】:2012-08-31 03:32:28
【问题描述】:

我有一个列出学生的可视化 Web 部件。

还有一个 webpart 来添加/编辑学生。

部署应用程序后,我创建了新的 webpart 页面,并在一个区域中添加了 CreateStudent webpart,在另一个区域中添加了 ListStudent webpart。

当我添加一个学生时,我需要在 ListStudent webpart 的网格中找到该学生的详细信息。

我认为我需要连接两个 webpart,使 CreateStudent webpart 作为提供者 webpart 和 ListStudent webpart 作为消费者 webpart,但我的疑问是,我不需要将任何特定值传递给 ListStudent webpart。

我在 ListStudent webpart Page_Load 中有一个函数调用,它设置了 gridview 的数据源并绑定它。如何做到这一点?

【问题讨论】:

    标签: visual-studio-2010 sharepoint-2010 web-parts


    【解决方案1】:
    【解决方案2】:

    这里是简单的提供者和消费者 Web 部件。提供者 UI 接受它传递给消费者 Web 部件的文本字段,消费者 Web 部件只是输出它。 Web Part之间的连接如下界面:

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

    Provider 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 部件必须定义一个具有 ConnectionConsumer 属性的方法,该属性接受实现连接接口的对象(提供者 Web 部件)作为参数:

    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;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      • 2023-03-03
      • 2011-04-23
      • 2012-05-18
      • 2012-06-07
      相关资源
      最近更新 更多