0

自動ポストバックが有効になっているドロップダウン リストがあります。値を変更すると、Web ページの grideview が更新されます。ただし、ドロップダウンを取り除き、検索機能のようなテキストボックスを使用したいと考えています。ただし、検索文字列を実際の現在の値と比較できるように、リストを保持したいと考えています。ただし、ドロップダウン リストを非表示にすると、値をその中の項目と比較できなくなります。

または、より良い解決策はありますか?ユーザーには見えないが、データベースの値を入れて、それらの値をテキストボックスのテキストと比較できるコントロールですか?

助けてくれてありがとう。

次のコードでエラーが発生します。

    foreach (string s in DropDownList3.Items)
    { 
       //foreach gives me the error below     

       if(s == idsearch.Text)
       {
          valid = true;    
          break;
       }
    }

    if(valid == true)
    {
       GridView1.DataBind();
    }
4

3 に答える 3

0

ドロップダウンリストに値を格納するために、サーバー側のコードで変数を使用しないのはなぜですか。だから例えば..

String [] comparedValues = new String[4] {"value1", "value2", "value3", "value4"};

その後..

if (comparedValues.Contains(myTextBox.Text))
{
    // Do Something...
}
于 2012-06-13T21:37:25.627 に答える
0

DropDownList3.Items は、List ではなく System.Web.UI.WebControls.ListItem を返します。これを行う必要があります

  foreach (ListItem item in DropDownList3.Items)
  { //foreach gives me the error below

    if(item.Text == idsearch.Text)
    {

      valid = true;

      break;
    }

 }
于 2012-06-13T18:12:04.830 に答える
0

エラーは、ListItem を文字列にキャストしたことが原因です。そうであるように :

foreach (ListItem s in DropDownList3.Items)
{
    if(s.Text== idsearch.Text){


       valid = true;

       break;
    }
}

DropDownList.Items.FindByTextまたは、またはDropDownList.Items.FindByValueメソッドを使用して、テキストまたは値で項目を検索できます。

var searchResult = DropDownList1.Items.FindByText(idsearch.Text);

bool valid = searchResult != null; 
于 2012-06-13T18:10:57.147 に答える