Как я могу отредактировать элемент DropDown в элементе управления Repeater - PullRequest
0 голосов
/ 04 июня 2011

В этом я добавил один DropDownList в элемент управления Repeater, Для этого один DataTable назначен в качестве источника данных.

Но я хочу отредактировать DropDownList.Items в соответствии с данными источника данных.

Означает, что если DataSource выдаст 3 данных, тогда DropDownLidt имеет элементы списка из 1,2,3 если это 5, то 1,2,3,4,5, как это

Итак, для какого события я должен использовать и какой код мне нужно написать?

Ответы [ 2 ]

0 голосов
/ 04 июня 2011
 protected void rpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            int count = 0;
            // set count = your datatable count 
            DropDownList ddl = (DropDownList)e.Item.FindControl("ddl");  
            for(int i=1;i<=count;i++)
            {
                ddl.Items.Add(i.ToString());    
            }

        }
    }
0 голосов
/ 04 июня 2011

В вашем itemdatabound из вашего Repeater найдите свой control и привяжите его к базе данных, или установите значения, или что хотите, как показано ниже:

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                DataRowView row = e.Item.DataItem as DataRowView;

                DropDownList dl = e.Item.FindControl("ddlCategory") as DropDownList;
                dl.DataSource = CategoriesDataTable;
                dl.DataTextField = "CategoryDescription";
                dl.DataValueField = "CategoryPK";
                dl.SelectedValue = row["CategoryFK"].ToString();
                dl.DataBind();
            }
...