我将发布我的代码,我很好奇是否有人在这里看到我做错了什么。我已经测试了存储过程,并且可以正常工作,因此中断必须在Controller或Model中。参见下面的代码:
查看:
function saveCalc() {
var TotCost = $("#totCost").val();
var GPM = $("#CalcAmt").val();
var SP = parseFloat(TotCost / (1 - GPM));
var ID = parseInt($("#ID").val());
debugger;
$.ajax({
url: 'Items/ItemsReport_Update2',
type: "Get",
data: { ID: ID, SP: SP },
success: function () {
CalcDialog.close();
CalcDestroy();
$('#ItemsReportgrid').data('kendoGrid').dataSource.read();
$('#ItemsReportgrid').data('kendoGrid').refresh();
}
});
}
控制器:
public void ItemsReport_Update2( int ID, double SP)
{
ItemsModel oItemsModel = new ItemsModel();
oItemsModel.UpdateItemsReport2(ID, SP);
}
型号:
public void UpdateItemsReport2(int ID, double SP)
{
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("sp_UpdateInvItem2", con)
{
CommandType = CommandType.StoredProcedure
};
if (con.State == ConnectionState.Closed)
con.Open();
cmd.Parameters.AddWithValue("@ID", ID);
cmd.Parameters.AddWithValue("@SP", SP);
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
}
}
在此先感谢您的帮助。我已经用调试器运行了脚本,它正确地传递了数据。
答案 0 :(得分:0)
url: '/Items/ItemsReport_Update2',
您在Ajax URL中缺少了'/'
答案 1 :(得分:0)
我认为您的问题是网格没有填充结果数据
如果要加载剑道网格数据,请像这样更改控制器
public void ItemsReport_Update2( [DataSourceRequest]DataSourceRequest request,int ID, double SP)
{
//Create a list with your model type
List<> lst = new List<>();
ItemsModel oItemsModel = new ItemsModel();
oItemsModel.UpdateItemsReport2(ID, SP);
DataSourceResult result = lst.ToDataSourceResult(request);
var jsonResult = Json(result,JsonRequestBehavior.AllowGet);
}
然后您需要像这样更改javascript
function saveCalc() {
var TotCost = $("#totCost").val();
var GPM = $("#CalcAmt").val();
var SP = parseFloat(TotCost / (1 - GPM));
var ID = parseInt($("#ID").val());
var grid = $("#ItemsReportgrid").data('kendoGrid');
debugger;
$.ajax({
url: '/Items/ItemsReport_Update2',
type: "Get",
data: { ID: ID, SP: SP },
success: function (result) {
grid.dataSource.data(result.Data);
CalcDialog.close();
CalcDestroy();
}
});
}