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;
    }
}

public class 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(name、value)は何らかの値を期待しているため、ajax関数を使用せずにそのリストを取得するにはどうすればよいですか。

ps:私のutilクラスはコントローラーから派生していません..ただのクラス

4

2 に答える 2

1

ここのどこかにクライアント側のコードが含まれていると思いますが、言及しないことにしました。いくつか必要になります。HTMLはオートコンプリートをサポートしていません。

AJAXを使用したくない場合は、非表示のコントロールにリストを入力し、JavaScriptで何らかのオートコンプリートを実装します

于 2013-02-12T00:36:37.140 に答える
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 に答える