如何向Html.Kendo().Dialog()发送参数?
How to send parameters to Html.Kendo().Dialog()?
我需要发送一个参数给Html.Kendo().Dialog()
:
var diff = Num1 = Num2;
var msg = "The amiunt of " + diff + " will be subtracted"
@(Html.Kendo().Dialog()
.Title("Update")
.Content("<p>" + msg + <p>")
但是那个构造不允许这样,说"msg"在当前内容中不存在
我该怎么做?
更新版本:
if ((Math.abs(newAmount) < Math.abs(Amount)) && newAmount != 0) {
$("#dialog").kendoDialog({
width: "400px",
title: "Split Ticket Confirmation",
closable: true,
modal: true,
content: "<div style='text-align: center'>" + msg + "</div>",
actions: [
{
text: 'OK',
action: function (e) {
$('.modal-content').html('');
$('#modal-container').modal('hide');
SaveData();
},
primary: true
},
{
text: "CANCEL",
action: function (e) {
$('.modal-content').html('');
$('#modal-container').modal('hide');
return false;
},
primary: true
}
]
}).data("kendoDialog").open();
}
else {
SaveData();
}
使用 Razor HTML C# 语法,您可以通过这样做而不会出错:
@{
var msg = "The amiunt of " + diff + " will be subtracted";
}
然后像您已经做的那样定期将其传递给内容。
如果您正在使用 JavaScript 并且真的想在脚本标签内使用该对话框,那么您可以这样做:
var dialog = $('#dialog'), undo = $("#undo");
undo.click(function () {
dialog.data("kendoDialog").open();
undo.fadeOut();
});
function onClose() {
undo.fadeIn();
}
var diff = Num1 = Num2;
var msg = "The amiunt of " + diff + " will be subtracted";
dialog.kendoDialog({
width: "400px",
title: "Update",
closable: false,
modal: false,
content: "<p>" + msg + "<p>",
actions: [
{
text: "OK",
action: function(e){
// e.sender is a reference to the dialog widget object
// OK action was clicked
// Returning false will prevent the closing of the dialog
return false;
},
primary: true
},
{ text: 'Action 2' },
{ text: 'Action 3', primary: true }
],
close: onClose
});
要为每个请求添加另一个操作,您可以对 Html.Kendo.Dialog() 构造执行以下操作:
@Html.Kendo.Dialog()
.Actions(actions =>
{
actions.Add().Text("Ok").Action("onOkClick").Primary(true);
})
并在您的脚本标签中创建 JS 方法:
function onOkClick(e)
{
//Do something
}
我正在做的是在打开对话框的事件中将部分内容写入页面:
function OpenDialog() {
$.ajax({
url: '@Url.Action("ItemSearch", "Invoice")',
data: {
PartNumber: dataItem.Id,
AltPartNumber: 1,
Description: 1,
Application: 1
},
success: function (result) {
$("#SearchDialogContainer").html(result);
},
error: function (result) {
alert("An error occurred.");
}
});
}
<div id="SearchDialogContainer"></div>
部分:
@model ParameterModel
@(Html.Kendo().Dialog()
.Name("SearchDialog")
.Title("Choose An Item To Add")
.Content("<div class='k-textbox k-space-right search-wrapper'><input id='employees-search' type='text' placeholder='Search employees' value='@Model.Property'/></div>")
.Width(400)
.Modal(true)
.Visible(false)
.Actions(actions =>
{
actions.Add().Text("Add Item").Primary(true);
actions.Add().Text("Cancel");
})
)
<script>
$(document).ready(function () {
$('#SearchDialog').data("kendoDialog").open();
});
</script>
我需要发送一个参数给Html.Kendo().Dialog()
:
var diff = Num1 = Num2;
var msg = "The amiunt of " + diff + " will be subtracted"
@(Html.Kendo().Dialog()
.Title("Update")
.Content("<p>" + msg + <p>")
但是那个构造不允许这样,说"msg"在当前内容中不存在
我该怎么做?
更新版本:
if ((Math.abs(newAmount) < Math.abs(Amount)) && newAmount != 0) {
$("#dialog").kendoDialog({
width: "400px",
title: "Split Ticket Confirmation",
closable: true,
modal: true,
content: "<div style='text-align: center'>" + msg + "</div>",
actions: [
{
text: 'OK',
action: function (e) {
$('.modal-content').html('');
$('#modal-container').modal('hide');
SaveData();
},
primary: true
},
{
text: "CANCEL",
action: function (e) {
$('.modal-content').html('');
$('#modal-container').modal('hide');
return false;
},
primary: true
}
]
}).data("kendoDialog").open();
}
else {
SaveData();
}
使用 Razor HTML C# 语法,您可以通过这样做而不会出错:
@{
var msg = "The amiunt of " + diff + " will be subtracted";
}
然后像您已经做的那样定期将其传递给内容。
如果您正在使用 JavaScript 并且真的想在脚本标签内使用该对话框,那么您可以这样做:
var dialog = $('#dialog'), undo = $("#undo");
undo.click(function () {
dialog.data("kendoDialog").open();
undo.fadeOut();
});
function onClose() {
undo.fadeIn();
}
var diff = Num1 = Num2;
var msg = "The amiunt of " + diff + " will be subtracted";
dialog.kendoDialog({
width: "400px",
title: "Update",
closable: false,
modal: false,
content: "<p>" + msg + "<p>",
actions: [
{
text: "OK",
action: function(e){
// e.sender is a reference to the dialog widget object
// OK action was clicked
// Returning false will prevent the closing of the dialog
return false;
},
primary: true
},
{ text: 'Action 2' },
{ text: 'Action 3', primary: true }
],
close: onClose
});
要为每个请求添加另一个操作,您可以对 Html.Kendo.Dialog() 构造执行以下操作:
@Html.Kendo.Dialog()
.Actions(actions =>
{
actions.Add().Text("Ok").Action("onOkClick").Primary(true);
})
并在您的脚本标签中创建 JS 方法:
function onOkClick(e)
{
//Do something
}
我正在做的是在打开对话框的事件中将部分内容写入页面:
function OpenDialog() {
$.ajax({
url: '@Url.Action("ItemSearch", "Invoice")',
data: {
PartNumber: dataItem.Id,
AltPartNumber: 1,
Description: 1,
Application: 1
},
success: function (result) {
$("#SearchDialogContainer").html(result);
},
error: function (result) {
alert("An error occurred.");
}
});
}
<div id="SearchDialogContainer"></div>
部分:
@model ParameterModel
@(Html.Kendo().Dialog()
.Name("SearchDialog")
.Title("Choose An Item To Add")
.Content("<div class='k-textbox k-space-right search-wrapper'><input id='employees-search' type='text' placeholder='Search employees' value='@Model.Property'/></div>")
.Width(400)
.Modal(true)
.Visible(false)
.Actions(actions =>
{
actions.Add().Text("Add Item").Primary(true);
actions.Add().Text("Cancel");
})
)
<script>
$(document).ready(function () {
$('#SearchDialog').data("kendoDialog").open();
});
</script>