隐藏的aspx时下拉列表文本更改

时间:2012-06-13 17:57:27

标签: c# asp.net

我有一个启用了自动后备的下拉列表。当我更改值时,它会在我的网页上更新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();
    }

3 个答案:

答案 0 :(得分:0)

错误是由于将ListItem强制转换为字符串。做:

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


       valid = true;

       break;
    }
}

或者,您可以使用DropDownList.Items.FindByTextDropDownList.Items.FindByValue方法按文字或值查找项目。

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

bool valid = searchResult != null; 

答案 1 :(得分: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;
    }

 }

答案 2 :(得分:0)

为什么不在服务器端代码中使用变量来将值存储在下拉列表中。所以例如..

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

然后..

if (comparedValues.Contains(myTextBox.Text))
{
    // Do Something...
}