تعيين قيمة القائمة المنسدلة في ListView على itemDatAbound

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

  •  23-09-2019
  •  | 
  •  

سؤال

لديّ قائمة منسدلة للعام والتي ستأتي ديناميكيًا. لقد ملأت قائمة القائمة المنسدلة باستخدام كائن بيانات البيانات. إدراج في التحكم في ListView بشكل جيد. ولكن عندما أقوم بالنقر فوق الزر "تحرير" ، يجب تعيين قيمة القائمة المنسدلة التي تأتي من قاعدة البيانات. على سبيل المثال ، إذا كان لدي صف يحتوي على سنة = 2006 و month = "Jan" ، فعند النقر فوق زر التحرير ، فيجب ملء قائمة القائمة المنسدلة هذه.

لقد كتبت الرمز في itemDatAbound لتعيين قيمة dropdownlilst. لكن عندما أستخدم FindControl ، فإن أخذ خطأ في مرجع الكائن. لذا يرجى تزويدني الحل.

شكرًا

سمير

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

المحلول 2

لقد كتبت الرمز أدناه

محمي void listview_articles_itemdatabound (مرسل الكائن ، listViewItEmeventArgs e) {

        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            if (cmd == "edit")
            {
                // Display the e-mail address in italics.
                int month, year;
                month = Convert.ToDateTime(DataBinder.Eval(((ListViewDataItem)e.Item).DataItem,"Created")).Month;
                year = Convert.ToDateTime(DataBinder.Eval(((ListViewDataItem)e.Item).DataItem, "Created")).Year;
                ListViewDataItem item = (ListViewDataItem)e.Item;

                DropDownList ddlmonth = (DropDownList)e.Item.FindControl("ddlmonth");
                DropDownList ddlyear = (DropDownList)e.Item.FindControl("ddlyear");
                ListItem lstitem = ddlyear.Items.FindByValue(year.ToString()); 

// وجدت أن ddlyear فارغ ، لذا فهو غير قادر على ربط البيانات.

if (ddlmonth != null)
                {
                    foreach (ListItem monthitem in ddlmonth.Items)
                    {
                        if (int.Parse(monthitem.Value) == month)
                        {
                            ddlmonth.ClearSelection();
                            monthitem.Selected = true;
                            return;
                        }
                    }
                }
                if (ddlyear != null)
                {
                    foreach (ListItem yearitem in ddlyear.Items)
                   {
                       if (int.Parse(yearitem.Value) == year)
                        {
                           ddlyear.ClearSelection();
                            yearitem.Selected = true;
                            return;
                        }
                    }
                }
            }

        }


    }

نصائح أخرى

 protected void MyListView_ItemDataBound(object sender, ListViewItemEventArgs e)
 {
     if (e.Item.ItemType == ListViewItemType.DataItem)
     {
          DropDownList ddl = (DropDownList)e.Item.FindControl("nameOfDDLOnAspxPage");
          ddl.SelectValue = (however you are getting the year data for this row);
     }
 }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top