1

ASP.NET ドロップダウンリストまたはテレリック 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()));
            }
        }
    }
}  
4

2 に答える 2

0

私はテレリックのドキュメントを調べましたが、一般的な方法はないようです-あなたがやろうとしていること。

可能であれば、データバインディングを使用してみてください (DataSource を設定し、DataBind を呼び出します)。
注:試していません。しかし、それは両方でサポートされるべきだと思います。

于 2009-06-21T21:19:52.273 に答える
0

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
}
于 2009-06-21T21:30:50.707 に答える