0

XMLドキュメントから設定を読み取り、それを文字列配列に変換してから、各文字列をループして、それらをに追加していDropDownListます。私が実際に行って自分自身を見るまでは、すべて正常に機能しているように見えますDropDownList。コードをデバッグしているときは、すべてが完全に追加されているように見えますが、何をしてDropDownListも空になります。コードの観点からは、コードが入力されているにもかかわらず、何も表示されない理由を誰かが少し明らかにすることができれば、それをいただければ幸いです。

私のコードは以下にあります(データバインディングを介してコードを入力しようとしましたが、まだ同じ問題が発生していることに注意してください)。

public class InstrumentDropDownList : DropDownList
{
   public InstrumentDropDownList()
    {
        PopulateDropDown();
    }

    public void PopulateDropDown()
    {
        string unsplitList = Fabric.SettingsProvider.ReadSetting<string>("Setting.Location");
        string[] instrumentList = unsplitList.Split(',');

        DropDownList instrumentsDropDown = new DropDownList();

        if (instrumentList.Length > 0)
        {
            foreach (string instrument in instrumentList)
            {
                instrumentsDropDown.Items.Add(instrument);
            }
        }
    }
}   
4

4 に答える 4

1

同じクラスから継承しているのに、なぜDropDownListの新しいインスタンスを作成するのですか。あなたはそのようなことをしているべきではありません。base.Items.Add()??

于 2013-02-25T17:12:02.780 に答える
1

新しいDropDownListを作成し、それにアイテムを追加しています。問題は、作成した新しいDropDownListで何もしていないことです。間違ったリストにアイテムを追加しているだけです。

    public void PopulateDropDown()
    {
        string unsplitList = Fabric.SettingsProvider.ReadSetting<string>("Setting.Location");
        string[] instrumentList = unsplitList.Split(',');

        if (instrumentList.Length > 0)
        {
            foreach (string instrument in instrumentList)
            {
                this.Items.Add(instrument);
            }
        }
    }

別の方法として、これも実行できるはずです。明らかに、さらに検証を加えたいと思うでしょうが、これは、DataSource/DataBindを使用できることを示すためだけのものです。

public void PopulateDropDown()
{
    this.DataSource = fabric.SettingsProvider.ReadSetting<string>("Setting.Location").Split(',');
    this.DataBind();
}
于 2013-02-25T17:43:10.687 に答える
0

ステートメントinstrumentsDropDown.DataBindの後に呼び出す必要があります。foreach

于 2013-02-25T16:58:10.970 に答える
0
public class InstrumentDropDownList : DropDownList
{
   public InstrumentDropDownList()
    {
        PopulateDropDown();
    }

    public void PopulateDropDown()
    {
        string unsplitList = Fabric.SettingsProvider.ReadSetting<string>("Setting.Location");
        string[] instrumentList = unsplitList.Split(',');

        DropDownList instrumentsDropDown = new DropDownList();

        if (instrumentList.Length > 0)
        {
            foreach (string instrument in instrumentList)
            {
                instrumentsDropDown.Items.Add(instrument);
            }
            instrumentsDropDown.DataBind();
        }
    }
}   
于 2013-02-25T17:03:20.530 に答える