ASP.NET 的组合框(有或没有 AjaxControlToolkit)
combobox for ASP.NET (with or without AjaxControlToolkit)
我需要一个用于 ASP.NET 站点的组合框。
所以控件需要:
1) - 提供多个可通过下拉列表选择的选项
2) - 让用户将不存在的字符串写入下拉列表。
此组合框控件已存在于 windows 应用程序 的 C# 中(并且工作正常)。
但是在 ASP.NET 默认控件中,没有这样的组合框。只有一个下拉列表 (1) 和一个文本框 (2)。
下拉列表不允许您使用不属于控件的 ItemList 的字符串设置 My_DropDownList.Text。
我用谷歌搜索了一下,测试了一些没有按我预期工作的自定义控件。
然后我发现了 AjaxControlToolkit。
它应该提供 ASP.Net.
我需要的确切 ComboBox
我安装了这个包,按照预先要求添加了一个 ajax ScriptManager,然后添加了 ComboBox。
看起来您可以用新值更改 My_ComboBox.Text,但这个新值必须属于控件的 ListItem。
否则我得到错误:
“...有一个无效的 SelectedValue,因为它不存在于项目列表中”
我错过了什么吗?我的理解是我们应该能够在组合框中设置任何值(至于 VS 为 win 应用程序提供的默认 C# 组合框)。
或者,您是否知道我可以添加任何其他控件来避免此问题?
当然,我有可能做这样的事情:
My_ComboBox.Add(new ListItem("my_String");
My_ComboBox.Text = "my_String";
但我很确定你会为我提供更优雅的解决方案。
提前致谢。
您对 ComboBox 的心智模型可能是 "a TextBox with a helpful auto-complete list"。然而,这不是 AjaxControlToolkit ComboBox 的用途:相反,它是一个自动添加用户输入的新项目的下拉菜单。
因此,从代码的角度来看,它的行为更像是一个下拉菜单,而不是一个文本框。您的理解是正确的:要将文本设置为以前未知的条目,您需要先将其添加到列表中。如果文本由用户输入,这是自动完成的。
如果您的用例更愿意 "a TextBox with a helpful auto-complete list",我会停止搜索组合框并开始投资自动完成文本框。
我需要一个用于 ASP.NET 站点的组合框。 所以控件需要:
1) - 提供多个可通过下拉列表选择的选项
2) - 让用户将不存在的字符串写入下拉列表。
此组合框控件已存在于 windows 应用程序 的 C# 中(并且工作正常)。 但是在 ASP.NET 默认控件中,没有这样的组合框。只有一个下拉列表 (1) 和一个文本框 (2)。 下拉列表不允许您使用不属于控件的 ItemList 的字符串设置 My_DropDownList.Text。
我用谷歌搜索了一下,测试了一些没有按我预期工作的自定义控件。 然后我发现了 AjaxControlToolkit。 它应该提供 ASP.Net.
我需要的确切 ComboBox我安装了这个包,按照预先要求添加了一个 ajax ScriptManager,然后添加了 ComboBox。 看起来您可以用新值更改 My_ComboBox.Text,但这个新值必须属于控件的 ListItem。 否则我得到错误: “...有一个无效的 SelectedValue,因为它不存在于项目列表中”
我错过了什么吗?我的理解是我们应该能够在组合框中设置任何值(至于 VS 为 win 应用程序提供的默认 C# 组合框)。
或者,您是否知道我可以添加任何其他控件来避免此问题?
当然,我有可能做这样的事情:
My_ComboBox.Add(new ListItem("my_String");
My_ComboBox.Text = "my_String";
但我很确定你会为我提供更优雅的解决方案。
提前致谢。
您对 ComboBox 的心智模型可能是 "a TextBox with a helpful auto-complete list"。然而,这不是 AjaxControlToolkit ComboBox 的用途:相反,它是一个自动添加用户输入的新项目的下拉菜单。
因此,从代码的角度来看,它的行为更像是一个下拉菜单,而不是一个文本框。您的理解是正确的:要将文本设置为以前未知的条目,您需要先将其添加到列表中。如果文本由用户输入,这是自动完成的。
如果您的用例更愿意 "a TextBox with a helpful auto-complete list",我会停止搜索组合框并开始投资自动完成文本框。