Asp.net 搜索第一次点击不';行不通

Asp.net 搜索第一次点击不';行不通,asp.net,c#-4.0,webforms,reportviewer,Asp.net,C# 4.0,Webforms,Reportviewer,我正在使用ReportViewer显示数据。我不想在Page_load中加载数据(因为我有很多数据,所以加载页面需要很多时间)。 我有一个问题,当我点击搜索按钮时,它会在第一次点击时加载所有数据,第二次点击后它会过滤数据。 你知道如何在第一次点击时过滤数据吗 我的代码如下所示: C#: asp.net web窗体: <rsweb:ReportViewer ID="ReportViewer_DetailsArticles" runat="server"> <LocalRe

我正在使用ReportViewer显示数据。我不想在Page_load中加载数据(因为我有很多数据,所以加载页面需要很多时间)。 我有一个问题,当我点击搜索按钮时,它会在第一次点击时加载所有数据,第二次点击后它会过滤数据。 你知道如何在第一次点击时过滤数据吗 我的代码如下所示:

  • C#:

  • asp.net web窗体:

    <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>
    
    
    

对不起,我的英语不好

如果您有日期参数,则此链接可能会帮助您:


我在存储过程中添加了一个参数'@Show bit',并在where语句中设置了'@Show=1',然后在页面aspx中添加了一个hiddenfield,如下所示:

 <asp:HiddenField ID="HiddenField_Show" runat="server" />
    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)
        {
            ...
        }
    }
<asp:ControlParameter ControlID="HiddenField_Show" PropertyName="Value" Name="Show" Type="Boolean" DefaultValue="False"></asp:ControlParameter>
    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)
        {
            ...
        }
    }