or
@model PASS.ViewModels.Proposals.RequiredViewModel@using (Ajax.BeginForm("_Required", "Proposals", new AjaxOptions { UpdateTargetId = "requiredReturnMsg", HttpMethod = "Post", OnComplete="onDataUpdated()" })){ @Html.HiddenFor(model => model.Proposal_ID, Model.Proposal_ID)<div class="editor-container"> <div class="proposal-info"> <p>User Facility: @Html.DisplayFor(model => model.User_Facility_ID)</p> <p>Proposal Type: @Html.DisplayFor(model => model.Proposal_Type)</p> <p>Proposal ID: @Html.DisplayFor(model => model.Proposal_ID)</p> </div> <br class="clear" /> <div class="editor-label"> @Html.Label("Primary Field of Research:") </div> <div class="editor-field"> @Html.DropDownListFor(model => model.Research_Field_ID, new SelectList(Model.ResearchFields, "Value", "Text"), "(Select One)") @Html.ValidationMessageFor(model => model.Research_Field_ID) </div> <br class="clear" /> <br /> <br /> <div class="editor-label"> @Html.Label("Funding Source") </div> <div class="editor-field"> @Html.DropDownListFor(model => model.Funding_Source_ID, new SelectList(Model.FundingSources, "Value", "Text"), "(Select One)") @Html.ValidationMessageFor(model => model.Funding_Source_ID) <input type="button" id="AddFundingSource" value="Add Funding Source" /> </div> <br class="clear" /> <div class="editor-label"> @Html.Label("Specify (only if requested)") </div> <div class="editor-field"> @Html.TextBoxFor(model => model.Funding_Specify, new { style = "width: 350px;" }) @Html.ValidationMessageFor(model => model.Funding_Specify) </div> <br class="clear" /> <br /> <br /> <p><input type="submit" value="Save" /></p> <br /> <br /> @(Html.Kendo().Grid<PASS.ViewModels.Proposals.FundingSourcesViewModel>() .Name("gridFundingSources") .Columns(columns => { columns.Bound(o => o.FundingSourceDescription).Title("Funding Source"); columns.Bound(o => o.Funding_Specify).Title("Specifics"); columns.Command(command => { command.Destroy(); }).Width(90); }) .Sortable() .DataSource(dataSource => dataSource .Ajax() .Model(model => model.Id(o => o.ID)) .Read(read => read.Action("GetFundingSources", "Proposals", new {proposalID = Model.Proposal_ID})) .Destroy(destroy => destroy.Action("DeleteFundingSource", "Proposals")) ) ) <br /> <br /> <div id="requiredReturnMsg"></div></div> }<script type="text/javascript">$(document).ready(function () { $("#AddFundingSource").click(function () { var proposalID = $("#Proposal_ID").val(); var fundingSourceID = $("#Funding_Source_ID").val(); var fundingSpecify = $("#Funding_Specify").val(); $.post('/Proposals/AddFundingSource', { proposalID: proposalID, fundingSourceID: fundingSourceID, fundingSpecify: fundingSpecify }, function (data) { onDataUpdated(); }); });});function onDataUpdated() { var grid = $("#gridFundingSources").data("kendoGrid"); grid.dataSource.read();}</script>[HttpPost]public ActionResult AddFundingSource([DataSourceRequest]DataSourceRequest request, FundingSourcesViewModel vm, int proposalID, int fundingSourceID, string fundingSpecify){ using (var context = new PASSEntities()) { var model = new Proposal_Funding_Sources() { Proposal_ID = proposalID, Funding_Source_ID = fundingSourceID, Funding_Specify = fundingSpecify }; context.Proposal_Funding_Sources.Add(model); context.SaveChanges(); } return Json(new[] { vm }.ToDataSourceResult(request));}
grid.table.kendoDraggable({ filter: "tbody > tr", group: "gridGroup", threshold: 100,
axis: "y",
hint: function (e) { return $('<div class="k-grid k-widget"><table><tbody><tr>' + e.html() + '</tr></tbody></table></div>'); }});