Вы можете выбрать более динамичный подход, сначала выбрав декартово произведение, а затем сопоставить объекты с требуемыми свойствами.
const
cartesian = (a, b) => a.reduce((r, v) => r.concat(b.map(w => [].concat(v, w))), []),
takeKeys = keys => a => Object.assign(...a.map((v, i) => ({ [keys[i]]: v })))
array1 = [1, 2, 3],
array2 = ['a', 'b', 'c'],
result = [array1, array2]
.reduce(cartesian)
.map(takeKeys(['el1', 'el2']));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Я действительно не смешал с SSRS - но моя шляпа ASP.NET говорит мне, что можно хотеть обернуть тот материал в if (!IsPostBack)
блок, чтобы помешать ему работать на обновлении страницы. Мое предположение то, что ReportViewer1.ServerReport.Refresh()
получения по запросу значения по умолчанию снова.
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ReportViewer1.Width = 800;
ReportViewer1.Height = 600;
ReportViewer1.ProcessingMode = ProcessingMode.Remote;
IReportServerCredentials irsc =new CustomReportCredentials("administrator", "MYpassworw", "domena");
ReportViewer1.ServerReport.ReportServerCredentials = irsc;
ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://192.168.0.1/ReportServer/");
ReportViewer1.ServerReport.ReportPath = "/autonarudzba/listanarudzbi";
ReportViewer1.ServerReport.Refresh();
}
}
Я создал новую функцию и поднял ее в режиме конструктора для свойств, событий, reportViewer. (В выборе INIT i)
После этого страница работает нормально, и я могу изменять значения для параметров.
Default.aspx теперь выглядит так:
</head>
<body>
<form id="form1" runat="server">
<div>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" onload="Admir">
</rsweb:ReportViewer>
</div>
</form>
</body>
И Default.aspx.cs выглядит следующим образом
public void Admir(object sender, EventArgs e)
{
ReportViewer1.Width = 800;
ReportViewer1.Height = 600;
ReportViewer1.ProcessingMode = ProcessingMode.Remote;
IReportServerCredentials irsc = new CustomReportCredentials("administrator", "mypass", "domena");
ReportViewer1.ServerReport.ReportServerCredentials = irsc;
ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://192.168.0.1/ReportServer/");
ReportViewer1.ServerReport.ReportPath = "/autonarudzba/listanarudzbi";
ReportViewer1.ServerReport.Refresh();
}
protected void Page_Load(object sender, EventArgs e)
{
}