Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从asp.net页面设置ReportParameter值_Asp.net_Reportviewer_Rdlc - Fatal编程技术网

从asp.net页面设置ReportParameter值

从asp.net页面设置ReportParameter值,asp.net,reportviewer,rdlc,Asp.net,Reportviewer,Rdlc,我想知道我是否可以在asp.net页面中设置值,而不是从代码隐藏页面。 就像我有这样的代码一样 this.ReportViewer1.LocalReport.SetParameters( new ReportParameter("Year", Request.QueryString["Year"]) ); 如何将其移动到aspx页面。好的,当我最初阅读您的问题时,我理解为您希望参数能够设置在与报告相同的页面上。我第二次访问它时,我

我想知道我是否可以在asp.net页面中设置值,而不是从代码隐藏页面。 就像我有这样的代码一样

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来做?谢谢大家。我正在使用网络表单。