我想制作一个自动填充文本框。但它会有点不同。让我解释..
我的util类中有一个静态方法。我从那里填充组合框..例如
cs code here
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;
}
}
公共类ProfessionList { public int ProfessionID {get;组; } public string Profession {get;组; } }
和html侧
@Html.DropDownList("cmbProfessions", new SelectList(MyUtil.GetProfessionList(),
"ProfessionID", "Profession"))
所以它非常好..我想在文本框中使用相同的方法进行自动填充。我不想使用任何ajax函数或类似..
我的cs代码
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;}
}
和html
@Html.TextBox("txtSpecific", new { autocomplete = new
SelectList(MyUtil.GetSpecificTagList(), "SpecificTag", "SpecificTag") })
我知道那不起作用。因为TextBox(名称,值) 期待一些价值......以及如何在没有任何ajax功能的情况下获得该列表..?
P.S。 :我的util类不是从控制器派生的......只是一个类
答案 0 :(得分:1)
我假设你有一些客户端代码涉及到你刚刚决定不提的地方 - 你需要一些。 HTML不支持自动完成。
如果您不想使用AJAX,请使用列表填充隐藏控件并在JavaScript中实现某种自动完成
答案 1 :(得分:1)
我用乔纳森先生的方式解决了我的问题。谢谢。
<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"})