مشكلة RadajaxManager عند إظهار/إخفاء التحكم في تحميل الصفحة
-
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
تحدث المشكلة في مثل هذا السيناريو:
- setupvisibility () يخفي مربع النص والتسمية أثناء تحميل الصفحة.
- أقوم بتغيير القيمة في قائمة DDLTest المنسدلة.
- يريد 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 حيث يتم إنشاء عناصر التحكم التي تم إنشاؤها بحلول ذلك الوقت.