Установить значение Dropdownlist в просмотре списка на элементе данных - PullRequest
0 голосов
/ 01 апреля 2010

У меня выпадающий список года, который будет динамически развиваться. Я заполнил выпадающий список, используя объект datasource.on и вставив его в элемент управления listview, он работает нормально. но когда я нажимаю на кнопку редактирования, должно быть установлено значение выпадающего списка, которое поступает из базы данных. например если у меня есть строка, которая содержит год = 2006 и месяц = ​​"январь" затем при нажатии на кнопку редактирования эти выпадающие списки должны быть заполнены.

Я написал код в ItemDataBound, чтобы установить значение dropdownlilst.but, когда я использую findcontrol, он принимает значение null, поэтому появляется ошибка ссылки на объект. поэтому, пожалуйста, предоставьте мне решение.

спасибо

1007 * Samir *

Ответы [ 2 ]

2 голосов
/ 01 апреля 2010
 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);
     }
 }
1 голос
/ 02 апреля 2010

я написал следующий код

защищенный пустот {

        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 имеет значение null, поэтому он не может связать данные.

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;
                        }
                    }
                }
            }

        }


    }
...