我使用ReportViewer来显示数据。我不想在Page_Load中加载数据(由于我有大量数据,因此加载页面需要花费大量时间)。 当我点击搜索按钮时,我有一个问题,它在第一次点击时加载所有数据,在第二次点击后它会过滤数据。 知道如何在第一次点击过滤数据 我的代码看起来像这样:
C#:
protected void LinkButton_FilterArticles_Click(object sender, EventArgs e)
{
try
{
ReportViewer_DetailsArticles.LocalReport.Refresh();
ReportViewer_DetailsArticles.ShowReportBody = true;
}
catch (Exception ex)
{
...
}
}
asp.net网络表单:
<rsweb:ReportViewer ID="ReportViewer_DetailsArticles" runat="server">
<LocalReport ReportPath="BO\Report\Report_DetailsArticles.rdlc">
<DataSources>
<rsweb:ReportDataSource Name="DataSet_DetailsArticles" DataSourceId="ObjectDataSource_DetailsArticles"></rsweb:ReportDataSource>
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:ObjectDataSource runat="server" ID="ObjectDataSource_DetailsArticles" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="MICIEN.BO.DataSet.DataSet_DetailsArticlesTableAdapters.Reporting_SearchFromDetailsArticlesTableAdapter" UpdateMethod="GetData">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox_DateDecisionFrom" PropertyName="Text" Name="DateDecisionFrom" Type="DateTime"></asp:ControlParameter>
<asp:ControlParameter ControlID="TextBox_DateDecisionTo" PropertyName="Text" Name="DateDecisionTo" Type="DateTime"></asp:ControlParameter>
<asp:ControlParameter ControlID="TextBox_DateReceptionFrom" PropertyName="Text" Name="DateReceptionDemandeFrom" Type="DateTime"></asp:ControlParameter>
<asp:ControlParameter ControlID="TextBox_DateReceptionTo" PropertyName="Text" Name="DateReceptionDemandeTo" Type="DateTime"></asp:ControlParameter>
<asp:ControlParameter ControlID="TextBox_CodeSH" PropertyName="Text" Name="ArticleCodeExt" Type="String"></asp:ControlParameter>
<asp:ControlParameter ControlID="TextBox_Importateur" PropertyName="Text" Name="Importer" Type="String"></asp:ControlParameter>
<asp:ControlParameter ControlID="DropDownList_Laboratoire" PropertyName="SelectedValue" Name="Laboratoire" Type="Int32"></asp:ControlParameter>
<asp:ControlParameter ControlID="DropDownList_Bureau" PropertyName="SelectedValue" Name="Bureau" Type="Int32"></asp:ControlParameter>
<asp:ControlParameter ControlID="DropDownList_FamilleProduit" PropertyName="SelectedValue" Name="FamilleProduit" Type="Int32"></asp:ControlParameter> </SelectParameters> </asp:ObjectDataSource>
答案 0 :(得分:0)
答案 1 :(得分:0)
我在storedProcedure中添加了一个参数&#39; @Show bit&#39;以及我设定的声明#39; @Show = 1&#39; 然后我在页面aspx中添加了一个隐藏字段:
<asp:HiddenField ID="HiddenField_Show" runat="server" />
数据源参数:
<asp:ControlParameter ControlID="HiddenField_Show" PropertyName="Value" Name="Show" Type="Boolean" DefaultValue="False"></asp:ControlParameter>
我的新c#代码看起来像这样:
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
HiddenField_Show.Value = "False";
ReportViewer_DetailsArticles.LocalReport.Refresh();
ReportViewer_DetailsArticles.ShowReportBody = true;
}
else HiddenField_Show.Value = "True";
}
catch (Exception ex)
{
...
}
}
protected void LinkButton_FilterArticles_Click(object sender, EventArgs e)
{
try
{
HiddenField_Show.Value = "True";
ReportViewer_DetailsArticles.LocalReport.Refresh();
ReportViewer_DetailsArticles.ShowReportBody = true;
}
catch (Exception ex)
{
...
}
}