我想将HTML控件传递给JavaScript中的另一个函数。我正在调用一个模式弹出窗口,它有一个输入控件和一个保存按钮。
我调用模态弹出窗口的函数将整个GridView
行作为参数。我想将此传递给另一个javascript函数,该函数将在模式对话框中单击按钮时调用。
我尝试如下,但它传递了一个字符串变量。
function ShowDialogPeoplePicker(id, requestType, cntrl) {
var row = cntrl.parentNode.parentNode;
var rowIndex = row.rowIndex - 1;
var Approvers = row.cells[1].getElementsByTagName("span")[0];
if (requestType == "AddApprovers") {
$('#btnAddApprover').removeAttr('onclick');
$('#btnAddApprover').attr('onClick', 'if (!setApprovers(\'' +cntrl + '\')) return false;');
}
}
单击按钮将调用以下函数,并将GridView
行内的值设置为
function setApprovers(cntrl)
{
var usernames= $("#hdnApproversName_CTO").val();
var row = cntrl.parentNode.parentNode;
var rowIndex = row.rowIndex - 1;
row.cells[1].getElementsByTagName("span")[0].innerHTML = usernames;
$("#overlayTasks").hide();
$("#dialogTasks").hide();
return false;
}
答案 0 :(得分:0)
而不是
var countriesKey = new List<long>() {45, 36, 6974, 366,....};
var keys = Context.VW_ProductCountries
.GroupBy(pc => pc.ProductKey)
.Where(grp => grp.Any(pc => countriesKey.Contains(pc.CountryKey) && !grp.Any(x => x.LocalProductKey != null)))
.SelectMany(grp => grp.Select(pc => pc.Productkey))
.Distinct();
var query2 = Context.VW_Product.Where(p => keys.Contains(p.ProductKey));
var result = query1.Concat(query2);
使用
$('#btnAddApprover').attr('onClick', 'if (!setApprovers(\'' +cntrl + '\')) return false;');
答案 1 :(得分:0)
而不是像这样附加你的点击处理程序:
$('#btnAddApprover').attr('onClick', 'if (!setApprovers(\'' +cntrl + '\')) return false;');
请改为尝试:
$('#btnAddApprover').on('click', function() {
setApprovers(cntrl);
});
如果您需要删除以前添加的事件侦听器,可以使用以下方法执行此操作:
$('#btnAddApprover').off('click');
或者,如果您想首先将听众附加到一次听,您可以使用:
$('#btnAddApprover').one('click', function() {
setApprovers(cntrl);
});
(使用one
代替on
)。希望这有帮助!