0

Telerik Kendo MVC UI コードに問題があります。私のコードはかなりクッキーカッターのようですが、コンボボックスに「.CascadeFrom」プロパティを配置すると、正しくロードされなくなります。JavaScript関数の定義を挿入すると登録されないように見えるという事実に関連しているようです。で次のメッセージが表示されます

ウェブ開発者コンソール:

[08:19:25.006] ReferenceError: getCountyVal is not defined in /Employer/Details/1

.CascadeFrom プロパティまたは JavaScript 関数を使用している状況に問題を切り分けたと思います。サーバー側コードを返す JSON で JavaScript 呼び出しや入力変数を必要としない場合は、間違いなくロードできました。

フロント エンド コード: (2 つのコンボボックス、.cshtml ファイルの部分ビュー)

    <td>
        <p>
        @(Html.Kendo().ComboBox()
                .Name("countyselector")
                .Placeholder("Select County....")
                .DataTextField("NameStr")
                .DataValueField("CountyTypeID")
                .DataSource(source =>
                    {
                        source.Read(read =>
                        {
                            read.Action("getCountyTypes", "Employer");
                        });
                    }
                )
                //.Events(e => { e.Select("onCountySelectorSelect"); })
            )
        </p>
    </td>
    <td>
        <p>
        @(Html.Kendo().ComboBox()
                .Name("countycityselector")
                .Placeholder("Select City / Area...")
                .DataTextField("NameStr")
                .DataValueField("CountyCityTypeID")
                .DataSource(source =>
                {
                    source.Read(read =>
                        {
                            read.Action("getCityAreas", "Employer")
                                .Data("getCountyVal");
                        }).ServerFiltering(true);
                }

                )
                .Enable(false)
                .AutoBind(false)
                .CascadeFrom("countyselector")
        )
        <script type="text/javascript">
            function getCountyVal() {
                return $("#countyselector").val();
            }
        </script>

コントローラーコード:

public JsonResult getCityAreas(int CountySel)
{
    // Return a set of CountyCityAreaTypeID's and their associated names based on a countyID.
    //return Json(db.vw_CountyCities.Where(x => x.CountyTypeId == Convert.ToInt16(CurrCountyValue))
    //            .Select(i => new { i.CountyCityAreatypeId, i.NameStr }), JsonRequestBehavior.AllowGet);
    var retval = Json(db.vw_CountyCities
                .Select(i => new { i.CountyCityAreatypeId, i.NameStr }), JsonRequestBehavior.AllowGet);
    return retval;
}

public JsonResult getCountyTypes()
{
    return Json(db.CountyTypes.Select(i => new { i.CountyTypeId, i.NameStr }), JsonRequestBehavior.AllowGet);
}
4

1 に答える 1

1

以下のコード スニペットを他のコード/マークアップの先頭に配置してください。

JS

 <script type="text/javascript">
        function getCountyVal() {
            return {
                CountySel: $("#countyselector").data("kendoComboBox").input.val()
            };
        }
    </script>

また

    <script type="text/javascript">
         function getCountyVal() {
             return {
                 CountySel: $("#countyselector").val()
             };
         }
    </script>
于 2013-07-13T10:01:06.330 に答える