私は剣道のグリッド内にDropDownListForコントロールを持っています。DropDownListのサーバー側にパラメータを渡すには、その行の別の要素の値が必要です読み取り方法。これは例hereと同様の設定です。ここDropDownListの読み込みデータの呼び出しを決定する方法
はDropDownListForを定義するコードは次のとおり
@(Html.Kendo().DropDownListFor(m => m)
.Name("LinkIdentifier")
.OptionLabel("---Select Form, etc.---")
.DataValueField("ID")
.DataTextField("Name")
.AutoBind(false)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("LinkTypeIdentifierDdl", "Alerts").Type(HttpVerbs.Post).Data("getCurrentLinkType");
}).ServerFiltering(true);
})
)
そして、ここでは.DATAに呼び出されるjavascript関数である:
function getCurrentLinkType() {
var grid = $("#linkGrid").data("kendoGrid");
var data = grid.dataSource.data();
var dataItem = data[0];
var valueForParameter = dataItem.SomeValue
//--snipped for brevity
}
上記の問題はデータ[0]。グリッド内の最初の行を指していますが、他の行を編集している場合は正しくありません。このメソッド内でjavascriptデバッガを使用し、 "this"を参照すると、ドロップダウンコントロールではなく、参照されるAJAX呼び出しです。メソッドとして ".Data(" getCurrentLinkType(this) ")"を指定することはできません。
したがって、どの行/コントロールがgetCurrentLinkTypeを呼び出したかをどのように判断できますか?
あなたは 'getCurrentLinkType()'の非常に最初の行に 'はconsole.log(引数)'追加した場合、あなたは何を得ますか? – DontVoteMeDown
@DontVoteMeDown、私はそれをテストし、関数に渡された唯一の引数は、空であるデータソースフィルタオブジェクト、すなわちfilter {filters:[]、logic: "and"}を含むオブジェクトです –