كيفية الوصول إلى القائمة المنسدلة من EditItemTemplate of FormView

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

سؤال

لدي عرض نموذج على صفحتي ASPX التي تحتوي على عناصر تحكم مختلفة مرتبة باستخدام الجدول. هناك DDL "CBOCLITS" التي أحتاج إلى تمكينها أو تعطيلها اعتمادًا على الدور في وضع التحرير.

المشكلة هنا هي أنني غير قادر على الحصول على هذا التحكم باستخدام طريقة FindControl ().

لقد جربت الكود التالي -

     DropDownList ddl = null;
       if (FormView1.Row != null)
        {
            ddl = (DropDownList)FormView1.Row.FindControl("cboClients");
            ddl.Enabled=false;        
}

حتى أنني استخدمت حدث قاعدة البيانات لنفس التحكم -

protected void cboClients_DataBound(object sender, EventArgs e)
    {
        if (FormView1.CurrentMode == FormViewMode.Edit)
        {
            if ((Session["RoleName"].ToString().Equals("Clients")) || (Session["RoleName"].ToString().Equals("Suppliers")))
            {
                DropDownList ddl = (DropDownList)sender;
                ddl.Enabled = false;
            }
        }
    }

ولكن يحدث هذا الحدث في قاعدة البيانات مرة واحدة فقط ، ولكن ليس عند تغيير وضع FormView.

هل يمكن لأي شخص أن يوفر لي حلًا مناسبًا؟

شكرا لتقاسم وقتك.

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

المحلول

جرب حدث ModeChanged.http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.formview.modechanged.aspx

تحديث..

جرب هذا

DropDownList ddl = FormView1.FindControl("cboClients") as DropDownList;
if (ddl != null) {
  ddl.Enabled=false;        
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top