Когда основная строка jqGrid расширяется, создается и отображается подсеть. Мне нужно захватить основные данные столбцов строки в сетке до того, как будет построена подкритерия. Для этого я использую subGridBeforeExpand событие Main Grid. В этом случае я вызываю код javascript для захвата данных столбцов расширенной строки, но без каких-либо успехов. alert выводит sel_id как null. Может ли кто-нибудь направить меня на это? Нужно ли мне использовать другое событие сетки или что-то не так с моим кодом jquery?.
**<script type="text/javascript">
function GetValues() {
var sel_id = jQuery("#ServersWS").jqGrid('getGridParam', 'selrow');
alert(sel_id);
var rowData = jQuery("#ServersWS").jqGrid('getRowData', sel_id);
var temp = rowData['Description']; //replace name with you column
alert(temp);
}
</script>**
div id="gridWrapper1" style="display: none">
@{
var grid1 = new JqGridHelper<Configuration.Models.Post.ProfileModel>(
"ServersWS",
caption: "Server Profiles With One or More Settings",
hidden: false,
hiddenEnabled: true,
dataType: JqGridDataTypes.Json,
methodType: JqGridMethodTypes.Post,
pager: true,
rowsNumber: 10,
sortingName: "Profile",
sortingOrder: JqGridSortingOrders.Asc,
url: Url.Action("GetServersWithSettings"),
**subGridBeforeExpand: "function(id) {GetValues();}",**
subgridEnabled: true,
subgridHelper: new JqGridHelper<PlatformConfigurationEditModel>(
"ProfileSettingsEdit",
caption: "Edit Settings",
hidden: false,
hiddenEnabled: true,
dataType: JqGridDataTypes.Json,
methodType: JqGridMethodTypes.Post,
pager: true,
rowsNumber: 10,
sortingName: "Id",
sortingOrder: JqGridSortingOrders.Asc,
url: Url.Action("GetEditableProfileSettings"),
editingUrl: Url.Action("Edit"),
viewRecords: true,
autoWidth: true,
sortable: true)
.Navigator(new JqGridNavigatorOptions { Search = false },
new JqGridNavigatorEditActionOptions { Url = Url.Action
("Update"),CloseAfterAdd = true, CloseAfterEdit = true, Width = 500, Height
= 300 },
new JqGridNavigatorEditActionOptions { Url = Url.Action("Add"),
CloseAfterAdd = true, CloseAfterEdit = true, Width = 500, Height = 300 },
new JqGridNavigatorDeleteActionOptions { Url = Url.Action("Delete") },
null, new JqGridNavigatorViewActionOptions { LabelsWidth = "60%" }
)
.FilterToolbar(options: new JqGridFilterToolbarOptions
{
StringResult = true,
DefaultSearchOperator = JqGridSearchOperators.Cn,
AutoSearch = true,
SearchOnEnter = false
}),
sortable: true
).FilterToolbar(new JqGridFilterToolbarOptions
{
StringResult = true,
DefaultSearchOperator = JqGridSearchOperators.Cn,
AutoSearch = true,
SearchOnEnter = false,
});
@grid1.GetHtml()
}
</div>
Я не знаком с библиотекой Lib.Web.Mvc, но вы можете попробовать использовать события jQuery вместо обратных вызовов. Например, jqGridSubGridBeforeExpand
может быть тем, что вам нужно:
jQuery("#ServersWS").bind("jqGridSubGridBeforeExpand", function (e, pID, rowid) {
alert("rowid=" + rowid);
});