Asp.net mvc MVC中的自动完成
我想制作一个自动完成的文本框。但会有一点不同。让我解释一下 我的util类中有一个静态方法。然后我从那里填充组合框。。比如 这里是cs代码Asp.net mvc MVC中的自动完成,asp.net-mvc,autocomplete,Asp.net Mvc,Autocomplete,我想制作一个自动完成的文本框。但会有一点不同。让我解释一下 我的util类中有一个静态方法。然后我从那里填充组合框。。比如 这里是cs代码 public class MyUtil { public static List<ProfessionList> GetProfessionList() { var liste= EntityHelper.GetProfessionList(false); var profList = new Lis
public class MyUtil
{
public static List<ProfessionList> GetProfessionList()
{
var liste= EntityHelper.GetProfessionList(false);
var profList = new List<ProfessionList>();
foreach (KeyValuePair<int, string> profession in liste)
profList.Add(new ProfessionList(){
Profession = profession.Value,
ProfessionID = profession.Key
});
}
return profList;
}
}
public static List<SpecificTagList> GetSpecificTagList()
{
var list = EntityHelper.GetSpecificTagList();
var tagList = new List<SpecificTagList>();
foreach (string s in list)
tagList.Add(new SpecificTagList(){SpecificTag = s});
return tagList;
}
public class SpecificTagList
{
public string SpecificTag { get; set;}
}
所以它工作得很好。。我想用同样的方法在文本框中自动完成。我不想使用任何ajax函数或类似的功能
我的cs代码在这里
public class MyUtil
{
public static List<ProfessionList> GetProfessionList()
{
var liste= EntityHelper.GetProfessionList(false);
var profList = new List<ProfessionList>();
foreach (KeyValuePair<int, string> profession in liste)
profList.Add(new ProfessionList(){
Profession = profession.Value,
ProfessionID = profession.Key
});
}
return profList;
}
}
public static List<SpecificTagList> GetSpecificTagList()
{
var list = EntityHelper.GetSpecificTagList();
var tagList = new List<SpecificTagList>();
foreach (string s in list)
tagList.Add(new SpecificTagList(){SpecificTag = s});
return tagList;
}
public class SpecificTagList
{
public string SpecificTag { get; set;}
}
我知道那不行。因为文本框(名称、值)
期望有一些价值。。那么,我如何在没有任何ajax函数的情况下获得该列表呢
p、 s:我的util类不是从controller派生的。。只是一个类我假设您在这里的某个地方涉及到一些客户端代码,您刚刚决定不提这些代码--您将需要一些。HTML不支持自动完成
如果你不想使用AJAX,那么用列表填充一个隐藏控件,并用JavaScript实现某种自动完成功能。我用Jonathan先生的方式解决了我的问题。多谢各位
<script type="text/javascript">
$(function () {
var specifiList=[];
$('#hiddenspecif').find('option').each(function () {
specifiList.push($(this).val());
});
$('#c2').autocomplete({
source: specifiList
}
);
});
</script>
@Html.TextBox("c2");
@Html.DropDownList("hiddenspecif",
new SelectList(MyUtil.GetSpecificTagList(),"SpecificTag","SpecificTag"),
new {style="display:none"})
$(函数(){
var specifiList=[];
$('hiddenspect')。查找('option')。每个(函数(){
specifiList.push($(this.val());
});
$('#c2')。自动完成({
资料来源:说明符
}
);
});
@Html.TextBox(“c2”);
@Html.DropDownList(“hiddenspect”,
新建SelectList(MyUtil.GetSpecificTagList(),“SpecificTag”,“SpecificTag”),
新建{style=“display:none”})
感谢您的关注。这里有一个示例,我可以从那里的函数创建这种数组吗?你说的话看起来有点奇怪。。但也有可能。。其实我想做到最好,你建议我怎么做?Thanxy您当然可以使用隐藏控件实现该代码。显然,您必须修改它,因为链接中的示例在JavaScript代码中声明了正确的列表。您还可以动态生成JavaScript,以便代码包含列表项。虽然动态生成JavaScript可能会使代码更复杂一些,但这两种方法都可以正常工作。非常感谢,我用您所说的解决了我的问题:)