我有两个名为 FileA.js 和 FileB.js 的JavaScript文件。 FileA.js包含以下函数:
Reports.CompanySearch.InitGrid = function (viewModel, emptyInit) {
var columns = [
{
name: 'CompanyName',
width: 150,
hidedlg: true,
search: false,
formatter: function namelinkformatter(cellvalue, options, rowObject) {
return "<a href='#/CompanyDetails/" + rowObject["Id"] + "'>" + rowObject["CompanyName"] + "</a>";
}
},
{ name: 'Address', width: 300, search: false },
{ name: 'City', width: 100, search: false },
{ name: 'State', width: 50, search: false },
{ name: 'Zip', width: 80, search: false, hidden: true },
{ name: 'Country', width: 120, search: false, hidden: true }
];
var grid = $("#searchGrid");
grid.jqGrid({
jsonReader: { root: 'rows', total: 'total', page: 'page', records: 'records', cell: 'cell', id: 'Id', repeatitems: false },
colNames: [
'Company Name',
'Address',
'City',
'State',
'Zip',
'Country'],
colModel: columns,
postData: Reports.CompanySearch.CreateSearchModel(viewModel),
url: '/CompanyReport/Search',
datatype: emptyInit ? 'local' : 'json',
mtype: 'POST',
viewrecords: true,
loadonce: false,
shrinkToFit: false,
multiselect: false,
autowidth: true,
altRows: true,
height: 'auto'
});};
该功能基本上在页面(页面A)上创建一个数据网格,其中包含从SQL Server中的表加载的公司列表。 公司名称有一个链接,允许用户单击它并在另一个页面上获取公司详细信息(页面B)。 页面A由JavaScript FileA.js控制,页面B由JavaScript FileB.js控制。 每当用户点击公司名称时,我想将公司 ZipCode 传递给FileB.js中的函数。 我在网上遇到的解决方案到目前为止没有帮助,任何帮助都将非常感激。谢谢!
答案 0 :(得分:0)
由于您使用的是Knockout,请查看Components。
协调这两者的方法是拥有一个父文件,该文件知道它们并在它们之间进行调解。父级将创建数据对象并将它们传递给两个组件对象。