我在我的Web应用程序中使用了新的Microsoft ASP.NET Ajax ComboBox控件,但我无法弄清楚如何以编程方式设置所选列表项。例如,我有一个接受地址的表单和一个接受城市名称的ComboBox。在用户输入并保存和解决之后,我想重置表单,包括ComboBox。
使用常规的ASP.NET下拉列表控件,我可以重置所选项目,如下所示:
City.SelectedIndex = -1;
ASP.NET AJAX ComboBox控件接受这行代码;但是当页面回发时,仍然会选择先前选择的值。帮助将不胜感激。
更新:我尝试了以下无效...
City.ClearSelection();
答案 0 :(得分:3)
一个解决方案是使用以下2个命令在第二次加载页面之前或在更新面板中显示它
Combobox1.ClearSelection()
Combobox1.Dispose()
这将清除Combobox值。
希望这有助于。花了一段时间找到它。
答案 1 :(得分:1)
这是CodePlex上的一个未解决的问题。所以,因为它是一个bug,所以在发布补丁之前没有解决方案。这是CodePlex上的issue。
答案 2 :(得分:1)
当我使用DropDownStyle =“DropDown”时,它的工作正常 和此命令清除文本 combobox1.SelectedItem.Text =“”
答案 3 :(得分:1)
*从2-18-2011工具包版本3.5.40412.2开始,这仍是一个错误
为了所有谷歌搜索者的目的,我找到的这个问题都没有解决(包括各种涉及迭代控件集合以找到隐藏控件,Dispose等)。
*这对我有用,无论我有多少层深层的组合框都埋在其他控件/面板等中*
combobox.Items.Clear();
((TextBox)cmbMachineNum.FindControl(“TextBox”))。Text =“”;
答案 4 :(得分:0)
尝试:
ComboBox.Text = "";
ComboBox.ClearSelection();
答案 5 :(得分:0)
你指的是CascadingDropDown吗?如果是这样,请将CascadingDropDown的SelectedValue设置为null。
CascadingDropDown1.SelectedValue = null;
答案 6 :(得分:0)
好吧如果你想设置索引,它实际上存储在它看起来像控件的隐藏字段中。所以我要做的就是清除它。
foreach (Control control in cbFeatures.Controls)
{
if (control is HiddenField)
((HiddenField)control).Value = "0";
}
这对我来说很有用,其中值是您要设置的索引。
答案 7 :(得分:0)
这可以通过清除隐藏字段来解决,如以下博客http://techiecentre.blogspot.com/
中所述答案 8 :(得分:0)
将City.ClearSelection()
替换为以下内容:
City.Items.Insert(0, "");
City.SelectedIndex = 0;
现在,这将在City控件的下拉列表部分中放置一个空字符串,并将文本设置为空字符串。要从下拉列表中删除空字符串,请使用
City.Items.Remove("");
在城市Page_Load
活动中。