从asp.net页面设置ReportParameter值
我想知道我是否可以在asp.net页面中设置值,而不是从代码隐藏页面。 就像我有这样的代码一样从asp.net页面设置ReportParameter值,asp.net,reportviewer,rdlc,Asp.net,Reportviewer,Rdlc,我想知道我是否可以在asp.net页面中设置值,而不是从代码隐藏页面。 就像我有这样的代码一样 this.ReportViewer1.LocalReport.SetParameters( new ReportParameter("Year", Request.QueryString["Year"]) ); 如何将其移动到aspx页面。好的,当我最初阅读您的问题时,我理解为您希望参数能够设置在与报告相同的页面上。我第二次访问它时,我
this.ReportViewer1.LocalReport.SetParameters(
new ReportParameter("Year", Request.QueryString["Year"])
);
如何将其移动到aspx页面。好的,当我最初阅读您的问题时,我理解为您希望参数能够设置在与报告相同的页面上。我第二次访问它时,我理解它的意思是,您只希望能够通过用户输入设置参数 我不确定哪一个是你想要的,但我的答案是: 通过用户输入的参数值(另一页): 我的页面(Parameters.cshtml):
<table>
<tbody>
@for (Int32 I = 0; I < Report.Parameters.Count; I++)
{
<tr>
<td>@Html.TextBox("[" + I + "].PromptString", Report.Parameters[I].PromptString, new { @type = "text", @readonly = "readonly", @tabindex = "-1", @style = "text-align: right; border: 0px ridge black; color: black;" })</td>
<td>
@Html.Hidden("[" + I + "].ID", Report.Parameters[I].ID, new { @type = "hidden" })
@Html.Hidden("[" + I + "].QueryParameter", Report.Parameters[I].QueryParameter, new { @type = "hidden" })
@Html.Hidden("[" + I + "].DataType", Report.Parameters[I].DataType, new { @type = "hidden" })
@Html.Hidden("[" + I + "].DataSet.ID", Report.Parameters[I].DataSet.ID, new { @type = "hidden" })
@Html.Hidden("[" + I + "].IsDisplayParameter", Report.Parameters[I].IsDisplayParameter, new { @type = "hidden" })
@Html.CheckBox("[" + I + "].Nullable", Report.Parameters[I].Nullable, new { @class = "hidden" })
@Html.TextBox("[" + I + "].Value", "", new { @type = Report.Parameters[I].GetInputType() })
</td>
</tr>
}
</tbody>
</table>
@对于(Int32 I=0;I
我的页面(在网站上查看时):
表单提交时:表单提交时,我将这些参数及其值作为列表提交给服务器
报告加载:
<table>
<tbody>
@for (Int32 I = 0; I < Report.Parameters.Count; I++)
{
<tr>
<td>@Html.TextBox("[" + I + "].PromptString", Report.Parameters[I].PromptString, new { @type = "text", @readonly = "readonly", @tabindex = "-1", @style = "text-align: right; border: 0px ridge black; color: black;" })</td>
<td>
@Html.Hidden("[" + I + "].ID", Report.Parameters[I].ID, new { @type = "hidden" })
@Html.Hidden("[" + I + "].QueryParameter", Report.Parameters[I].QueryParameter, new { @type = "hidden" })
@Html.Hidden("[" + I + "].DataType", Report.Parameters[I].DataType, new { @type = "hidden" })
@Html.Hidden("[" + I + "].DataSet.ID", Report.Parameters[I].DataSet.ID, new { @type = "hidden" })
@Html.Hidden("[" + I + "].IsDisplayParameter", Report.Parameters[I].IsDisplayParameter, new { @type = "hidden" })
@Html.CheckBox("[" + I + "].Nullable", Report.Parameters[I].Nullable, new { @class = "hidden" })
@Html.TextBox("[" + I + "].Value", "", new { @type = Report.Parameters[I].GetInputType() })
</td>
</tr>
}
</tbody>
</table>
私有无效页面加载(对象发送方,System.EventArgs e)
{
//从会话获取报表视图模型
//注意:SelectedReport是我创建的一个类,用于存储报表所需的信息。
//即其定义、名称/描述、数据集信息、参数等。
NMBS.Models.SelectedReport=Manager.GetValue(ContextID)作为NMBS.Models.SelectedReport
// Load Report Parameters.
// Report.ReportParameters is simply of type List<ReportParameter> See the class below.
ReportViewer.LocalReport.SetParameters(Report.ReportParameters);
//加载报告参数。
//Report.ReportParameters只是列表类型,请参见下面的类。
ReportViewer.LocalReport.SetParameters(Report.ReportParameters);
}
报告参数类:
公共类报告参数
{
公共Int32 ID{get;set;}
公共字符串PromptString{get;set;}
公共字符串数据类型{get;set;}
公共Int32优先级{get;set;}
公共字符串查询参数{get;set;}
公共布尔IsDisplayParameter{get;set;}
公共数据集{get;set;}
公共布尔可空{get;set;}
公共字符串值{get;set;}
}
这就是我在MVC中所做的。我知道您正在使用webforms,但在那里这样做应该不会有太大的改变。我希望这会有所帮助。我不确定这有多大帮助,但在MVC中,我只是创建了一个页面,将参数提交给服务器,然后将这些变量传递给pageload初始化(就像您的代码一样)。理论上,您也可以使用textfield和Ajax来做类似的事情。我现在正在打电话,如果我记得的话,我会试着用一个例子来正式回答。你们是想用ASP.net MVC还是ASP.net来做?谢谢大家。我正在使用网络表单。