【问题标题】:Webpart Connections asp.net VBWebpart 连接 asp.net VB
【发布时间】:2010-10-07 05:40:36
【问题描述】:

我在使用 vb.net asp.net webparts 时遇到以下问题。我试图在 webparts 之间创建一个静态连接,但我遇到了一个问题,即:

找不到 ID 为“Ucl_Diary_Summary1”的连接提供程序 Web 部件

我将以下内容定义为我的 iterface:

Public Interface IDiaryPartsProvider

    function Test as String

End Interface

我有以下作为我的消费者 (UserControl):

Partial Class UsrCtrls_Diary_ucl_DiaryAwaitingReview
    Inherits System.Web.UI.UserControl

    <ConnectionConsumer("Test", "myID")> _
    Public Sub GetTextTransferInterface(ByVal provider As IDiaryPartsProvider)
        Dim a As String = provider.Test()
        UserMsgBox(a.ToString, Me.Page)
    End Sub

End Class

我将以下内容定义为我的 Provider (UserControl):

Partial Class UsrCtrls_Diary_Diary_Summary
    Inherits System.Web.UI.UserControl

    Implements IWebPart, IDiaryPartsProvider

    <ConnectionProvider("myID")> _
    Public Function Test() As String Implements IDiaryPartsProvider.Test
        Return "this is a test"
    End Function
End Class

我的 default.aspx 如下:

<%@ Register Src="UsrCtrls/Diary/ucl_Diary_Summary.ascx" TagName="ucl_Diary_Summary"
    TagPrefix="uc4" %>
<%@ Register Src="UsrCtrls/Diary/ucl_DiaryAwaitingReview.ascx" TagName="ucl_DiaryAwaitingReview"
    TagPrefix="uc5" %>

<asp:WebPartManager ID="WebPartManager1" runat="server">
            <StaticConnections>
                <asp:WebPartConnection ID="cnn"
                ConsumerID="Ucl_DiaryAwaitingReview1"
                ProviderID="Ucl_Diary_Summary1"
                />
            </StaticConnections>
        </asp:WebPartManager>

<asp:WebPartZone ID="zoneDiaryTopLeft" runat="server" EmptyZoneText="Add WebPart Here" DragHighlightColor="#454777" HeaderText=" ">

                                    <ZoneTemplate>
                                    <asp:Panel ID="pnl1" runat="server" title="Claims Awaiting Review">
                                    <asp:UpdatePanel ID="udp_TopLeft" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional">
                                    <ContentTemplate>
                                        <uc5:ucl_DiaryAwaitingReview ID="Ucl_DiaryAwaitingReview1" runat="server" title="Claims Awaiting Review" />
                                        </ContentTemplate>
                                    </asp:UpdatePanel>
                                    </asp:Panel>
                                    </ZoneTemplate>
</asp:WebPartZone>

<asp:WebPartZone ID="zoneDiaryTopRight" runat="server" EmptyZoneText="Add WebPart Here" DragHighlightColor="#454777" HeaderText=" ">
                        <ZoneTemplate>
                        <asp:Panel ID="PNL2" runat="server" title="Diary Summary">
                       <asp:UpdatePanel ID="udp_TopRight" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional">
                        <ContentTemplate>
                            <uc4:ucl_Diary_Summary ID="Ucl_Diary_Summary1" runat="server" Title="Diary Summary" />
                        </ContentTemplate>
                        </asp:UpdatePanel>
                        </asp:Panel>
                        </ZoneTemplate>
</asp:WebPartZone>

我只能假设它是因为我有我的 webpart - 用户控件包含在一个面板中(用于滚动)以及一个我用来刷新的更新面板,那么我如何让它看到用户控件?

提前致谢。

詹姆斯。

【问题讨论】:

    标签: asp.net vb.net web-parts


    【解决方案1】:

    我没有机会详细查看您的消息,但问题似乎与您的提供商有关。它应该返回一个对象,该对象实现了用于与消费者通信的接口(通常是对自身的引用)。

    查看以下资源了解更多信息:

    Introducing ASP.NET Web Part Connections

    【讨论】:

      【解决方案2】:

      我最终找到了我的问题/解决方案。

      Rob,你是对的,我需要传回实现接口的对象的实例,而且,您不能为静态连接引用用户控件,该静态连接是其他两个控件的子控件,即面板和更新面板。我做这一切都错了。我对其进行了更改,以便更新面板位于用户控件内而不是默认页面上。这样,所有特定(Web 部件)组件都是自包含的。

      另外,参考返回实例的原始项,我替换了以下内容:

      Public Function Test() As String Implements IDiaryPartsProvider.Test
          Return "this is a test"
      End Function
      

      与:

         <ConnectionProvider("myID")> _
      Public Function Test() As IDiaryPartsProvider
          Return me
      End Function
      
      
      Public ReadOnly Property Test() As String Implements IDiaryPartsProvider.Test
          Get
              Return "This is a test"
          End Get
      End Property
      

      希望这可以帮助别人!

      詹姆斯。

      【讨论】:

      • 嗨,詹姆斯,很高兴我能帮上忙。您应该将我的回复或您的跟进标记为答案,否则系统将继续将此问题显示为未回答。
      猜你喜欢
      • 2010-10-21
      • 2010-10-06
      • 1970-01-01
      • 2011-02-10
      • 2011-07-10
      • 1970-01-01
      • 2011-03-06
      • 2019-01-21
      • 1970-01-01
      相关资源
      最近更新 更多