0

我有一个启用了自动回发的下拉列表。当我更改值时,它会更新我网页上的 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

错误是由于将 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 回答
0

DropDownList3.Items 返回 System.Web.UI.WebControls.ListItem 而不是 List。你应该做这个

  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 回答