0

次のコードを使用して項目を追加しながら、2 つの Telerik RadComboBox コントロールがあります。

foreach (var gate in Enum.GetNames(typeof(AuthorizedGates)))
{
     var item = new RadComboBoxItem(gate, Convert.ToString((int)Enum.Parse(typeof(AuthorizedGates), gate)));
     ddlTelerik1.Items.Add(item);
     ddlTelerik2.Items.Add(item);
 }

実行時に、最初のコンボボックスにはアイテムがありません。つまり、アイテムは追加されませんが、アイテムは2番目のコンボボックスに追加されます!

次のコードを使用して、ASP.NET DropDownList に対して同じことを試しました

foreach (var gate in Enum.GetNames(typeof(AuthorizedGates)))
{
    var item = new ListItem(gate, Convert.ToString((int)Enum.Parse(typeof(AuthorizedGates), gate)));
    ddlAspNet1.Items.Add(item);
    ddlAspNet2.Items.Add(item);
}

正常に動作しており、両方にアイテムが追加されています。

この奇妙な動作の背後にある理由は何ですか?

4

1 に答える 1

1

違いは、RadComboBox 項目は RadComboBox または DropDownList コントロールのようなコントロールであるため、WebControl から間接的に継承するクラスであり、ページ上にインスタンスを 1 つしか持てないことです。ListItem (Object から継承) とは異なります。

于 2013-03-12T15:31:25.410 に答える