かなり複雑なUIにjqGridを使用しようとしています。グリッドには、最終的にドロップダウン列、オートコンプリート、およびボタン列が必要になります。今のところ、モデルの値を入力し、モデルのプロパティから最初に選択した値を設定し、ユーザーが値を変更するとそのプロパティを変更するselect
リストを列に設定する方法を理解するのに苦労しています。リストIEnumerable
の。select
たとえば、次のモデルがあるとします。
public class GridRowModel
{
public int GridRowModelId { get; set; }
public string SomeText { get; set; }
public int SomeSelectOptionId { get; set; }
}
public class SelectOption
{
public int SomeSelectOptionId { get; set; }
public string Description { get; set; }
}
public class SomeModel {
public int SomeModelId { get; set; }
public IEnumerable<GridRowModel> GridRowModels { get; set; }
public IEnumerable<SelectOption> AllSelectOptions { get; set; }
}
のAllSelectOptions
プロパティはSomeModel
、モデル上の他のすべてのものとともに、コントローラーで設定されます。コントローラには、jqGridGetSomeModelGridRows
のオブジェクトの配列を返すメソッドもあります。次に、次のようなRazorがあります。GridRowModel
rows
@model SomeModel
<table id="someModelGridRows" cellpadding="0" cellspacing="0"></table>
<div id="pager" style="text-align: center;"></div>
<script type="text/javascript">
$(document).ready(function() {
$("#someModelGridRows").jqGrid({
url: '@Url.Action("GetSomeModelGridRows")',
datatype: 'json',
mtype: 'POST',
colNames: ['GridRowModelId', 'Text', 'Select Option'],
colModel: [
{ name: 'GridRowModelId', index: 'GridRowModelId', hidden: true },
{ name: 'SomeText', index: 'SomeText' },
{ name: 'SomeSelectOptionId', index: 'SomeSelectOptionId', edittype: 'select',
**?? is this where I would do something and if so, what ??**
],
//the rest of the grid stuff
});
});
</script>
グリッド以外の状況では、これはHtml.DropDownListFor
ヘルパーを使用すると簡単です。ここでこれを使用する方法はありますか?私はこれをすべて間違った方法で行っていますか、および/またはこれは可能ですか?