مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

مهرداد کاهه

عضویت از 1393/04/21

مشکل در تعریف dropDownList در CodeBehind

  • دوشنبه 13 مرداد 1393
  • 13:55
تشکر میکنم

سلام.

من چند تا DropDownList در سمت کد asp.net تعریف کردم که این ها درون یک لیست List<DropDownList> نگه داری میشه. حالا مشکل اینجاست که وقتی صحه لود میشه وقتی که تابع  Init که این دراپ دان هارا میسازه را درون if(!IsPostBack) میگذارم با پست بک شدن صفحه دیگه اونها ظاهر نمیشند و اگر از if درشون بیارم با هر بار پست بک شدن دوباره میسازدشون. من میخوام این dropDown ها مانند دراپ دان هایی که با کنترل ها توی صفحه aspx میسازیم ظاهر بشند.

لطفا کمک کنید که چه شکلی میتونم مقایر این dropDown ها را نگه دارم و مشکل را رفع کنم؟

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

محمد کلهر

عضویت از 1392/05/14

  • دوشنبه 13 مرداد 1393
  • 16:52

سلام.

dropdown رو در  رویداد Page_Init میسازی؟

اگه تو این رویداد بسازی با PostBackمشکلی پیش نمی اد.

کاربر سایت

مهرداد کاهه

عضویت از 1393/04/21

  • دوشنبه 13 مرداد 1393
  • 17:52

دوست من ممنون از جوابتون. زحمت کشیدید. در حقیقت من یه چیزی مثل تصویر زیر را میخوام.

لینک تصویر

که کاربر وقتی روی ذخیره کلیک کرد مقادیر selectedValue هر دراپ دان توی دیتابیس ذخیره بشه. به خاطر همین که با هر تابعی بتونم به این دراپدان ها دسترسی داشته باشم ببینید چه شکلی کد هام را تعریف کردم:

توی قسمت global کلاسم:

List<DropDownList> ListDropDownExternalParameters = new List<DropDownList>();

 

و تابعی که تعریف کردم تا دراپ داون ها را بسازه:

public void PresetExternalParameters()
    {
         
        ListDropDownExternalParameters.Clear();
        foreach (var Param in linq.ExternalParameters.ToList())
        {
                DropDownList DropList = new DropDownList();
                DropList.Attributes.Add("par_id", Param.id.ToString());
                DropList.EnableViewState = true;
                PanelExternalParameters.Controls.Add(DropList);
                foreach (var item in linq.ExternalItems.OrderBy(n => n.value).Where(n => n.p_id == Param.id).ToList())
                {
                    ListItem li = new ListItem(item.name, item.value.ToString());
                    li.Attributes.Add("item_id", item.id.ToString());
                    DropList.Items.Add(li);
                }
        }
    }

و اینکه من در مورد Page_init چیزی نمیدونم. منظورتون همون Page_loade آیا؟؟

کاربر سایت

محمد کلهر

عضویت از 1392/05/14

  • دوشنبه 13 مرداد 1393
  • 22:44

Page_init برای مقدارهی اولیه صفحه هست(موقع لود شدن صفحه) و قبل از Page_Load  اجرا می شه.

من یک مثال زدم:

       protected void Page_Init()
        {
            CreatDrop();
        }

        protected void CreatDrop()
        {
            DropDownList ddl = new DropDownList();
            ddl.ID = "d1";

            ddl.Width = 200;
            ddl.Items.Add(new ListItem("Mohammad", "Mohammad"));
            ddl.Items.Add(new ListItem("Ali", "Ali"));
            ddl.Items.Add(new ListItem("Hossein", "Hossein"));
            Panel1.Controls.Add(ddl);
          
           
        }
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)