调用javascript函数并传递参数
calling javascript function and passing parameter
我使用的是Kendo Grid,我试图创建一个自定义列模板命令来调用一个JavaScript函数,该函数对我的mvc控制器进行ajax调用,传递两个参数,以便我可以在其中做一些其他事情。
这是网格:
@(Html.Kendo().Grid<iPlan.Syspro.Beekman.Portal.Agents.Models.SalesOrderDetailViewModel>()
.Name("Details")
.HtmlAttributes(new {@style = "width:80vw"})
.Columns(columns => {
columns.Bound(c => c.Agent).Width(100);
columns.Bound(c => c.SalesOrder).Width(150);
columns.Bound(c => c.Line).Width(60);
columns.Bound(c => c.StockCode).Width(150);
columns.Bound(c => c.SerialNumber).Width(150);
columns.Bound(c => c.DerivativeDescription).Width(150);
columns.Bound(c => c.StockCodeDescription).Width(150);
columns.Bound(c => c.OrderQty).Width(150);
columns.Bound(c => c.OnBackorder).Width(150);
columns.Bound(c => c.QtyAvailable).Width(150);
columns.Bound(c => c.ShippedQuantity).Width(150);
columns.Bound(c => c.SalesPrice).Width(150);
columns.Bound(c => c.AlternativeSerial).Width(150);
columns.Bound(c => c.AlternativeSerialReason).Width(150);
columns.Bound(c => c.VinNr).Width(150);
columns.Bound(c => c.DealerOrderNr).Width(150);
columns.Bound(c => c.WipNr).Width(150);
columns.Bound(c => c.GrnNr).Width(150);
columns.Bound(c => c.AsnNr).Width(150);
columns.Bound(c => c.DeliveryNoteNr).Width(150);
columns.Command(command => {command.Edit(); command.Destroy();}).Width(172);
columns.Template(@<text></text>).Width(150).ClientTemplate("<a class='k-button k-button- icontext k-grid-edit' href='javascript:' onclick='approve()'><span class='k-icon k-edit'> </span>Approve</a>").Title("Action");
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Sortable()
.Scrollable()
.Groupable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(5))
.DataSource(dataSource => dataSource
.Ajax()
.Events(events => events.Error("error_handler"))
.Read(read => read.Action("SalesOrdersDetail_Read", "Inbox").Data("getSalesOrder"))
.Update(update => update.Action("SalesOrdersDetail_Update","InboxAgent"))
.Destroy(destroy => destroy.Action("SalesOrdersDetail_Destroy","InboxAgent"))
.Create(create => create.Action("SalesOrdersDetail_Create","InboxAgent"))
.Model(model => {
model.Id(p => p.SalesOrder);
model.Field(p => p.StockCode).Editable(false);
model.Field(p => p.SerialNumber).Editable(false);
model.Field(p => p.DerivativeDescription).Editable(false);
model.Field(p => p.StockCodeDescription).Editable(false);
model.Field(p => p.SalesOrder).Editable(false);
model.Field(p => p.Agent).Editable(false);
model.Field(p => p.Line).Editable(false);
model.Field(p => p.OrderQty).Editable(false);
model.Field(p => p.OnBackorder).Editable(false);
model.Field(p => p.QtyAvailable).Editable(false);
model.Field(p => p.ShippedQuantity).Editable(false);
})
))
以下是我试图调用的JavaScript函数:
<script type="text/javascript">
function approve(e) {
debugger;
console.log("index function hit");
//var data = $("#Details").data("kendoGrid").dataSource.data();
//var dataRet = data.indexOf(dataItem);
$.ajax({
type: 'POST',
url: href="/Inbox/SalesOrderDetailApprove" + "?SalesOrder=" + e.SalesOrder + "&Line=" + e.Line,
dataType: 'json',
data: {} ,
success: function (response) { }
});
}
现在,有了这段代码,它击中了JavaScript方法,但它没有通过我的数据。这是控制器中需要将数据传递给的方法。因此,需要解决的问题是:
- 数据需要正确地传递给JavaScript方法
- 我一点击模板列中的按钮,剑道网格就会进入编辑模式,我需要再次点击按钮才能使其退出编辑模式
- 该事件不会触发一次,而是在加载页面时命中该方法
- 另一个问题是我最近安装了resharper(试用版)。我卸载了resharper,从那以后,我对视图(cshtml)中所有剃刀部分的智能感知都被破坏了。我该如何解决这个问题
public ActionResult SalesOrderDetailApprove( string SalesOrder, string Line) {
try {
return Json("", JsonRequestBehavior.AllowGet);
} catch (Exception) {
throw;
}
}
尝试此代码来调用函数
function approve(e) {
var postUrl = '@Url.Action("SalesOrderDetailApprove", "Inbox")';
var EmployeeId = { SalesOrder: e.SalesOrder, Line: e.Line};
$.ajax({
url: postUrl,
data: EmployeeId,
type: 'POST',
dataType: 'json',
success: function (response) { }
});
}
这对你有用。
相关文章:
- 在url参数javascript中存储键值对列表
- 可选参数 JavaScript 技巧
- 如何计算参数 JavaScript 中的条件
- 未定义的变量作为函数参数 javascript
- 使用带有参数 Javascript 的函数更改全局变量
- 如何在参数JavaScript中更改对象属性
- 如何使用参数(javascript)调用Date构造函数
- 作为参数(javascript)传递的函数的系统唯一id
- Backbone.BabySiter内部参数-Javascript Scope
- 未定义函数参数-Javascript
- 谷歌地图api v3-IE7-main.js错误-无效参数(javascript)
- 通过onclick函数发送参数-Javascript
- 传递属于对象的匿名方法作为参数-Javascript
- 未捕获类型错误:没有足够的参数Javascript游戏
- 缺少)参数Javascript错误
- 在函数参数Javascript上使用toSentenceCase
- 跳过函数参数javascript
- 如何在调用不带括号的函数时传递参数 [Javascript]
- 如何传递多个参数javascript
- Foreach键和值输入参数javascript