我需要从网格中选择一个值并将其传递给ajax。我收到的错误是“Id undefined”。任何人都可以建议我解决这个问题。记录最多被删除的网格中显示的内容。点击按钮选中的值必须得到ajax函数才能删除进程。值s移动到ajax但是得到了policyid未定义的错误提前感谢。
网格列代码:
@{
var grid = new WebGrid(Model.Policy, rowsPerPage: 20, selectionFieldName: "selectedRow", ajaxUpdateContainerId: "gridcal");
grid.Pager(WebGridPagerModes.NextPrevious);}
@grid.GetHtml(
tableStyle: "webgrid-table",
headerStyle: "webgrid-header",
footerStyle: "webgrid-footer",
alternatingRowStyle: "webgrid-alternating-row",
selectedRowStyle: "webgrid-selected-row",
rowStyle: "webgrid-row-style",
columns:
grid.Columns(
grid.Column("PolicyName","Policy Name",style: "colWidth"),
grid.Column("PolicyValue","Policy Value",style: "colWidth"),
// grid.Column ("Delete",format:@<text><a href="@Url.Action("DeletePolicy","Roles",new{PolicyId=item.PolicyId.ToString()})"><img src="~/Images/img-delete-blk-icon.png" width="9" height="9" alt="Delete"/></a> </text>)
****grid.Column(format: @<text><input type="image" onclick="AJAXCall_Fun_DeletePolicy()" src="~/Images/img-delete-blk-icon.png" name="image" width="9" height="9" /></text>)****
))
@if (grid.HasSelection)
{
<b>Policy Name</b>@AppliedPolicies.PolicyName<br />
<b>Policy Value</b>@AppliedPolicies.PolicyValue<br />
}
Ajax:
function AJAXCall_Fun_DeletePolicy() {
if ($.xhrPool.length > 0) {
$.each($.xhrPool, function (idx, jqXHR) {
if (jqXHR) {
this.abort();
}
});
$.xhrPool = [];
}
var PolicyId = PolicyId();
if (PolicyId.length > 0) {
$.ajax({
type: "GET",
url: "/Roles/DeletePolicy",
data: { 'PolicyId': JSON.stringify(PolicyId) },
async: true,
cache: false,
datatype: "json",
控制器代码:
public JsonResult DeletePolicy(string PolicyId)
{
bool status = false;
using (clsBLLGroups objclsBLLGroups = new clsBLLGroups())
{
status = objclsBLLGroups.DeletePolicy(UserCookieWrapper.UserAccessToken, PolicyId.ToString());
}
return Json(status, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
网格呈现为表格,因此使用Get id of selected row in a table -HTML获取点击行的ID,然后您可以通过ajax调用将其传递给控制器。
你提到PolicyId是控制器代码。如果你想在你的ajax调用中包含模型中的值,你只需要使用@
var PolicyId = '@(Model.PolicyId)';
您也可以将它用于您的网址。我们使用
url: '@Url.Action("DeletePolicy", "Roles")',
我们的网址。希望这有帮助