【问题标题】:Passing parameter from one user control to another user control in an aspx page将参数从一个用户控件传递到 aspx 页面中的另一个用户控件
【发布时间】:2010-06-03 21:33:30
【问题描述】:

我在一个 aspx 页面上有两个用户控件。 UC1 有一个网格,其中包含用户单击的链接按钮列。根据点击单元格的值,我需要在 UC2 中显示一些数据。

  1. 如何将数据从 UC1 传递到 UC2?
  2. 如何从 UC1 调用 UC2 的函数?

请指教。谢谢

AJ

【问题讨论】:

    标签: asp.net user-controls


    【解决方案1】:

    如果您遵循良好的 OO 原则,那么 UC1 和 UC2 应该不会相互了解。可以让包含页面了解其子控件的功能并协助将消息/事件/数据从一个路由路由到另一个。

    这意味着 UC1 可以引发事件,并且可以在事件的事件参数中传递适当的数据(如行标识符或实际绑定的数据项)。然后,包含页面可以调用 UC2 上的函数,传入从 UC1 传达的信息。

    【讨论】:

      【解决方案2】:
      1. 您可以在 UC1 的回发中设置 UC2 上的值。
      2. 您可以在 UC1 的回发中调用 UC2 上的函数。

      这些解决方案依赖于回发,因此如果您使用 AJAX,它会更加复杂。但是回发方法应该适合您。

      .aspx 页面

      <uc:MyControlOne runat="server" OnClick="DoPostBack" ID="UC1" />
      <uc:MyControlTwo runat="server" ID="UC2" />
      

      .aspx.cs 页面

      public void DoPostBack(object sender, EventArgs e)
      {
        UC2.Value = UC1.Value;
        UC2.UpdateSomething();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-29
        相关资源
        最近更新 更多