سؤال

لقد حصلت على عنصر تحكم مستخدم ويب مع updatePanel. على صفحة الرئيسية الخاصة بي ، حصلت على 3 من تلك الضوابط. الآن أريد أن أحصل على مؤقت في صفحة Mainpage من شأنه أن يؤدي إلى تحديث Panels في عناصر تحكم مستخدم الويب.

كيف يمكنني إدارة هذا؟

شكرا مقدما.

هل كانت مفيدة؟

المحلول

باستخدام التحكم في Ajax Timer كمشغل UpdatePanel

قم بتنفيذ وظيفة تحديث في USERCONTROL التي تستدعي الوظيفة التحديث الخاصة بألواح التحديث الخاصة بها وتسميها من صفحة MAIND في حدث Timertick لكل عنصر تحكم. قم بتعيين updateMode من updatePanels الخاص بـ UpaterTrols = مشروط.

على سبيل المثال في Codebehind الخاص بـ UserControl:

Public Sub Update()
    'bind Data to your UpdatePanel's content f.e.:
    Me.Label1.Text = Date.Now.ToLongTimeString
    Me.UpdatePanel1.Update()
End Sub

وفي صفحتك الرئيسية:

Private myControls As New List(Of WebUserControl1)

Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
     For i As Int32 = 1 To 10
        Dim newControl As WebUserControl1= DirectCast(LoadControl("./WebUserControl1.ascx"), WebUserControl1)
        myControls.Add(newControl)
        MainPanel.Controls.Add(newControl)
     Next
End Sub

Protected Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    'in this example added dynamically
    For Each ctrl As WebUserControl1 In Me.myControls 
        ctrl.Update()
    Next
End Sub

في ملف ASCX الخاص بـ USERCONTROL:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>             
    </ContentTemplate>
</asp:UpdatePanel>

في ملف ASPX الخاص بـ MainPage:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
     <asp:Panel ID="MainPanel"  runat="server">
        <asp:Timer ID="Timer1" runat="server" Interval="1000"></asp:Timer>
     </asp:Panel>             
    </ContentTemplate>
</asp:UpdatePanel>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top