0

DetailsViewテンプレートフィールド内のDropDownListにフロア番号を入力しています。フロア数は可変であり、選択した建物のフロア数に応じて、以前のDDLから入力されます。フロア数を超えると、フロア番号に達するまで番号を繰り返す必要があります。この例では、15階があります。私はこのようにやっています:

     int i;
            int cnt = Convert.ToInt32(tmpBox3.SelectedItem.Text); //15

            for (i = 0; i <= cnt; i++)
            {
                tmpBox3.Items.Insert(i, new ListItem(i.ToString(), i.ToString()));
            }

            tmpBox3.Items.Remove(new ListItem("0"));  //remove zero
            tmpBox3.Items.Remove(new ListItem(cnt.ToString())); //remove duplicate 15
            tmpBox3.Items.Insert(0, new ListItem("--Select--","0")); //add select
            tmpBox3.SelectedIndex = 0; // make select default choice

これが出力と問題です。間抜けなタグでごめんなさい

[option selected="selected" value="0"]--Select--[/option]
[option value="1"]1[/option]
[option value="2"]2[/option]...
[option value="14"]14[/option]
[option value="1"]15[/option]

最後のエントリ値が問題です。私はそれを15にすることができないようです。どんなヒントでも大歓迎です。

4

2 に答える 2

0

まず、必要ないのに、なぜ項目 0 を追加するのですか? それを次のようにします

for (i = 1; i <= cnt; i++)
{
  string floor = i.ToString();
  tmpBox3.Items.Add(new ListItem(floor, floor));
}

第二に、あなたの tmpBox3 は最初は空ではないと思うので、tmpBox3.SelectedItem.Text を取得した後、

tmpBox3.Items.Clear();
于 2012-05-24T15:30:00.933 に答える
0

私があなたの問題を理解していれば、あなたはこの方法でそれを行うことができませんでした...

int i; 

// Substract 1 to eliminate last floor
int cnt = Convert.ToInt32(tmpBox3.SelectedItem.Text) - 1; 

tmpBox3.Items.Add(0, new ListItem("--Select--","0")); //add select 

// Notice starting at 1 instead of 0
for (i = 1; i <= cnt; i++) 
{ 
     tmpBox3.Items.Add(i, new ListItem(i.ToString(), i.ToString())); 
} 

tmpBox3.SelectedIndex = 0; // make select default choice 

または別の方法...

int i;  

int cnt = Convert.ToInt32(tmpBox3.SelectedItem.Text);  

tmpBox3.Items.Add(0, new ListItem("--Select--","0")); //add select  

// Notice starting at 1 instead of 0 and make "less than" instead of "less than or equal"
for (i = 1; i < cnt; i++)  
{  
     tmpBox3.Items.Add(i, new ListItem(i.ToString(), i.ToString()));  
}  

tmpBox3.SelectedIndex = 0; // make select default choice  
于 2012-05-24T15:11:14.263 に答える