مشكلة RadajaxManager عند إظهار/إخفاء التحكم في تحميل الصفحة

StackOverflow https://stackoverflow.com/questions/3043537

  •  27-09-2019
  •  | 
  •  

سؤال

لدي WebForm مع قائمة القائمة المنسدلة والتسمية ومربع النص. مثل أدناه:

<asp:DropDownList ID="ddlTest" runat="server" AutoPostBack="true">
</asp:DropDownList> 

<asp:Label ID="lblTest" runat="server" Text="Some text">
</asp:Label>
<asp:TextBox ID="edtTest" runat="server">
</asp:TextBox> 

أرغب في إظهار/إخفاء التسمية ومربع النص اعتمادًا على القيمة المحددة في قائمة القائمة المنسدلة. لذلك أضفت RadajaxManader:

<rad:RadAjaxManager ID="RadAjaxManager1" runat="server">  
    <AjaxSettings>   
        <rad:AjaxSetting AjaxControlID="ddlTest">   
            <UpdatedControls> 
                <rad:AjaxUpdatedControl ControlID="lblTest" /> 
                <rad:AjaxUpdatedControl ControlID="edtTest" /> 
            </UpdatedControls> 
        </rad:AjaxSetting> 
    </AjaxSettings> 
</rad:RadAjaxManager>  

والإجراء "setupvisibility" الذي يأخذ القيمة من قائمة القائمة المنسدلة ، يقوم ببعض الممرات ويوال ما إذا كان سيتم عرض الملصق أو إخفاءه ومربع النص. عندما أستخدم الإجراء مثل هذا:

Protected Sub ddlTest_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlTest.SelectedIndexChanged  
    SetupVisibility()  
End Sub 

إنه يعمل بشكل جيد ، لكنني الآن أريد استدعاء setupvisibility عند تحميل الصفحة:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    SetupVisibility()
End Sub

تحدث المشكلة في مثل هذا السيناريو:

  1. setupvisibility () يخفي مربع النص والتسمية أثناء تحميل الصفحة.
  2. أقوم بتغيير القيمة في قائمة DDLTest المنسدلة.
  3. يريد setupvisibility () إظهار مربع النص والتسمية ، ولكن بعد ذلك أحصل على الخطأ: Microsoft JScript - runtime error: Cannot update control with ID: ctl00_CPH1_lblTest. The control does not exist. أين المشكلة؟
هل كانت مفيدة؟

المحلول

لقد حلت المشكلة. لقد لفت مربع النص والتسمية في Div ولوحة:

<div id="panelTest_DIV" runat="server">
  <asp:Panel ID="panelTest" runat="server">
    <asp:Label ID="lblTest" runat="server" Text="Some text..."></asp:Label><br />
    <asp:TextBox ID="edtTest" runat="server"></asp:TextBox>
  </asp:Panel>
</div>

و jaxmanager:

<rad:AjaxSetting AjaxControlID="ddlTest">
  <UpdatedControls>
    <rad:AjaxUpdatedControl ControlID="panelTest_DIV" />
  </UpdatedControls>
</rad:AjaxSetting>

داخل SetupVisibility() أضبط panelTest.Visibility. حل المشكلة.

نصائح أخرى

يتم إطلاق Page_init عند تهيئة الصفحة. خلال هذا الحدث ، لا يوجد جاذب مفاده أن الضوابط قد تم إنشاؤها ..

حاول وضع الكود الخاص بك في page_load حيث يتم إنشاء عناصر التحكم التي تم إنشاؤها بحلول ذلك الوقت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top