0

我想做一个自动完成的文本框。但它会有点不同。让我解释..

我的 util 类中有一个静态方法。我从那里填充组合框..比如

这里是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;
    }
}

公共类 ProfessionList { public int ProfessionID { 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(name, value) 需要一些值.. 那么我如何在没有任何 ajax 函数的情况下获得该列表..?

ps:我的 util 类不是从控制器派生的.. 只是一个类

4

2 回答 2

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"}) 
于 2013-02-12T01:18:40.533 回答
1

我假设您在某个地方涉及到一些您刚刚决定不提及的客户端代码——您将需要一些。HTML 不支持自动完成。

如果您不想使用 AJAX,则使用列表填充隐藏控件并在 JavaScript 中实现某种自动完成功能

于 2013-02-12T00:36:37.140 回答