Возврат ASP ASP или Telerik управления - PullRequest
1 голос
/ 22 июня 2009

Я пытаюсь написать более общий метод, который будет заполнять либо раскрывающийся список ASP.NET, либо telerik RadComboBox с состояниями. Я хотел бы передать управление в качестве параметра метода. У меня есть DataTable, в котором хранятся все состояния, которые я зацикливаю (см. Ниже) - я хотел бы сделать это применимым к Telerik RadComboBox - поэтому мне нужно изменить первый параметр, а также часть, в которую я вставляю новый ListItem - для Telerik RadComboBox это новый RadComboBoxItem. Как я могу это сделать?

public void PopulateStates(DropDownList ddlStates, string country)
{
    ddlStates.Items.Clear();
    DataLookup dl = new DataLookup();
    DataTable dt = dl.GetStatesByCountry(country);
    if (dt != null)
    {
        if (dt.Rows.Count > 0)
        {
            ddlStates.Items.Insert(0, new ListItem(""));
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ddlStates.Items.Add(new ListItem(dt.Rows[i]["STCD_Descr"].ToString(),
                    dt.Rows[i]["STCD_State_CD"].ToString()));
            }
        }
    }
}  

Ответы [ 2 ]

0 голосов
/ 22 июня 2009

Поскольку ListBox и RadComboBox не имеют общих классов, за исключением класса «Control», вам необходимо проверить фактический тип.

Как насчет следующего кода?

public void PopulateStates(Control ddl, string country)
{
    object listItem = new object();
    switch (ddl.GetType().Name)
    {
        case "RadComboBox":
            listItem = listItem as RadComboBoxItem;
            ddl = ddl as RadComboBox;
            break;
        case "ListBox":
            listItem = listItem as ListItem;
            ddl = ddl as ListBox;
            break;
        default:
            return;
    }

    // proceed with your code
}
0 голосов
/ 22 июня 2009

Я просмотрел документацию по Telerik, и, похоже, нет обычного способа сделать то, что вы пытаетесь сделать.

Если это возможно, попробуйте использовать привязку данных (настройка источника данных и вызов DataBind).
Примечание: я не пробовал это. Но я думаю, что это должно поддерживаться обоими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...