【发布时间】:2017-05-26 21:06:21
【问题描述】:
我有一个名为Index 的视图,以及两个部分视图_Grid 和_Project。
partialview _Project 是一个弹出窗口,一旦用户单击按钮添加数据,它就会可见,就像添加用户一样。
现在,一旦用户单击_Project 弹出窗口内的按钮,我正在尝试更改部分视图_Grid 内的文本框值。
_Grid 局部视图内部:
<input id="CurrentOrder" type="hidden" value=""/>
一旦按下弹出窗口内的按钮(partialview _Project),在 javascript 中:
function AddTimeReg() {
//code
if (date && shopdoc && ((convertedStartTime && convertedEndTime) || hours)) {
$.ajax({
// more code
// change the value of textbox
$("#Grid #CurrentOrder").val(salesorder);
输入类型在名为 Grid 的 div 中的 Grid 局部视图内。
我到底做错了什么? 我希望文本框有 salesorder 的值。
编辑:对于想要完整代码的人: Javascript 文件:
function AddTimeReg() {
var salesorder = $("#SalesOrder").val();
var shopdoc = $("#Shopdoc").val().trim();
var starttime = $("#StartTime").val().trim()
var convertedStartTime = starttime.replace(/\./g, ':')
var endtime = $("#EndTime").val().trim()
var convertedEndTime = endtime.split('.').join(':');
var hours = Math.round(Number($("#Hours").val().trim().replace(DecimalSeparator(), '.')) * 100 / 100);
var date = $("#Date").val().trim();
var info = $("#Info").val().trim();
var timeRegLineNr = 0;
var isEditing = $("#Project #Date").prop('disabled');
if (isEditing) {
timeRegLineNr = $($(".highlight")[0]).children(".td-TimeRegLineNr").text();
}
if (date && shopdoc && ((convertedStartTime && convertedEndTime) || hours)) {
$.ajax({
type: 'post',
url: appPath + '/TimeReg/ShopDoc',
data: {
regDate: date, salesOrder: salesorder, shopDoc: shopdoc, startTime: convertedStartTime, endTime: convertedEndTime,
hours: hours, info: info, timeRegLineNr: timeRegLineNr
},
success: function (response) {
if (response.success) {
var mySessionVariable = shopdoc
ClosePopup();
ShowGrid();
$("#Grid #CurrentOrder").val(salesorder);
var timerId = setTimeout(function () {
$("#dialog #TimerId").val("");
$("#dialog").modal("hide");
}, timeToClose);
$("#dialog #TimerId").val(timerId);
}
$("#dialog .modal-body").html(response.message);
$("#dialog #dialog-title").html(response.title);
$("#dialog").modal("show");
},
error: function (response) {
$("#dialog .modal-body").html(msgErrorDuringRequest);
$("#dialog #dialog-title").html(errorTitle);
$("#dialog").modal("show");
}
});
}
}
内部索引:
<div id="Main" style="@mainDisplay">
<div style="margin:10px;">
<input id="regDate" type="@regDateType" value="@DateTime.Now.ToShortDateString()" />
<input type="button" class="btn btn-default" value="@Resources.Ok" onclick="ShowGrid()">
</div>
<div id="Grid">
@if ((bool)ViewBag.ShowGrid)
{
Html.RenderAction("Grid", new { login = (string)ViewBag.Login, regDate = DateTime.Now });
}
在 _Grid 局部视图中有文本框:
<input id="CurrentOrder" type="hidden" value=""/>
在项目部分视图中,有一个调用 javascript Action 的按钮
【问题讨论】:
-
请把剩下的代码贴出来好吗?
-
我理解你的问题是正确的,在提交 modal(_Project partial view) 之后,你需要进行 ajax 调用以再次绑定你的网格。
-
$("#CurrentOrder").val(salesorder);应该这样做。除非 1. 您有多个名为 CurrentOrder 的项目。 2. CurrentOrder 在页面上实际上并不存在。 3. 您的模态框位于 IFrame 中
-
你输入的
CurrentOrder是隐藏字段不是文本框吗? -
@KevDevMan 在局部视图_Project上调用javascript函数,而在_Grid局部视图中实现隐藏字段
标签: javascript jquery asp.net asp.net-mvc