0

sqldatasource1などに自動的に接続するgridviewがあります。グリッドの場合、検索テキストボックスもあります。ユーザーがレコードをフィルタリングする必要がある場合は、別の((sqldatasource2-another procuder))を呼び出して、同じgridviewに配置します。 、ボタンをクリックすると、gridView.datasourceIDを別のsqldatasourceに変更する必要があります。

注:sqldatasource1とsqldatasource2は同じクエリを返します。

sqldatasource1のプロデューサー:

create proc AfficheDossiers
@Nom_GIAC varchar(50)
as
 begin
 select [ID_Dossier] as 'ID_Dossier'
      ,[ID_Entreprise] as 'ID_Entreprise'
      ,[Date_Depot] as 'Date_Dépôt'
      ,[Type_Etude] as 'Type_Etude'
      ,[Dernier_Type] as 'Dernier_Type'
      ,[Eligibile] as 'Eligibilité'
      ,[Fiche_Information] as 'Fiche_Information'
      ,[Buletin_Adhesion] as 'Bulletin_d’adhésion'
      ,[Fiche_Renseignment] as 'Fiche_Renseignment'
      ,[Attestation] as 'Attestation'
      ,[Date_Debut] as 'Date_Début'
      ,[Date_Fin] as 'Date_Fin'
      ,[ID_Cabinet] as 'ID_Cabinet'
      ,[Montant_Demander] as 'Montant_Demander'
      ,[Duree] as 'Durée'
      ,[Porcentage_Taux] as 'Pourcentage,Taux' from Dossier where Nom_Giac = @Nom_GIAC 
 end

sqldatasource2((searche)のプロデューサー:

alter proc rechercherGIAC @nomgiac varchar(20),@nom varchar(30),@par varchar(50)
           as
            begin
            if @nom='CNSS' 
              begin
              select d.[ID_Dossier] as 'ID_Dossier'
              ,d.[ID_Entreprise] as 'ID_Entreprise'
              ,[Date_Depot] as 'Date_Dépôt'
              ,[Type_Etude] as 'Type_Etude'
              ,[Dernier_Type] as 'Dernier_Type'
              ,[Eligibile] as 'Eligibilité'
              ,[Fiche_Information] as 'Fiche_Information'
              ,[Buletin_Adhesion] as 'Bulletin_d’adhésion'
              ,[Fiche_Renseignment] as 'Fiche_Renseignment'
              ,[Attestation] as 'Attestation'
              ,[Date_Debut] as 'Date_Début'
              ,[Date_Fin] as 'Date_Fin'
              ,[ID_Cabinet] as 'ID_Cabinet'
              ,[Montant_Demander] as 'Montant_Demander'
              ,[Duree] as 'Durée'
              ,[Porcentage_Taux] as 'Pourcentage,Taux' 
              from dbo.Dossier d inner join entreprise e on d.ID_Entreprise=e.ID_Entreprise
              where CNSS_Entreprise=@par and d.Nom_Giac=@nomgiac 
              end
            else if @nom='RS'  
              begin
              select [ID_Dossier] as 'ID_Dossier'
              ,[ID_Entreprise] as 'ID_Entreprise'
              ,[Date_Depot] as 'Date_Dépôt'
              ,[Type_Etude] as 'Type_Etude'
              ,[Dernier_Type] as 'Dernier_Type'
              ,[Eligibile] as 'Eligibilité'
              ,[Fiche_Information] as 'Fiche_Information'
              ,[Buletin_Adhesion] as 'Bulletin_d’adhésion'
              ,[Fiche_Renseignment] as 'Fiche_Renseignment'
              ,[Attestation] as 'Attestation'
              ,[Date_Debut] as 'Date_Début'
              ,[Date_Fin] as 'Date_Fin'
              ,[ID_Cabinet] as 'ID_Cabinet'
              ,[Montant_Demander] as 'Montant_Demander'
              ,[Duree] as 'Durée'
              ,[Porcentage_Taux] as 'Pourcentage,Taux'  
              from dbo.Dossier 
              where  Nom_Giac=@nomgiac and ID_Entreprise in( select ID_Entreprise
                                                             from dbo.Entreprise
                                                             where Raison_Social=@par)                                            
              end
           else if @nom ='Date'
            begin
             declare @v smalldatetime,@b smalldatetime
              set @b=SUBSTRING(@par,1,4)
              set @v=SUBSTRING(@par,5,8)
            select [ID_Dossier] as 'ID_Dossier'
              ,[ID_Entreprise] as 'ID_Entreprise'
              ,[Date_Depot] as 'Date_Dépôt'
              ,[Type_Etude] as 'Type_Etude'
              ,[Dernier_Type] as 'Dernier_Type'
              ,[Eligibile] as 'Eligibilité'
              ,[Fiche_Information] as 'Fiche_Information'
              ,[Buletin_Adhesion] as 'Bulletin_d’adhésion'
              ,[Fiche_Renseignment] as 'Fiche_Renseignment'
              ,[Attestation] as 'Attestation'
              ,[Date_Debut] as 'Date_Début'
              ,[Date_Fin] as 'Date_Fin'
              ,[ID_Cabinet] as 'ID_Cabinet'
              ,[Montant_Demander] as 'Montant_Demander'
              ,[Duree] as 'Durée'
              ,[Porcentage_Taux] as 'Pourcentage,Taux'  
            from Dossier 
            where Date_Depot between @b and @v and Nom_Giac like @nomgiac

            end 
            end

これは検索テキストとボタンです:

 Saisir la CNSS : 
                     <asp:TextBox ID="CNSSTxt" class="TXTBOX" runat="server" Height="23px" placeholder="CNSS" style="font-family : Comic Sans MS, Arial, Tahoma; color:Red;"></asp:TextBox>

                     <asp:Button ID="BtnFiltrerCNSS" runat="server" Text="Filtrer" class="BTN" style="font-variant:small-caps;" />

これはグリッドビューです:

 <div class="GridViewDiv">

              <asp:UpdatePanel ID="DossierUpdatePanel" runat="server" UpdateMode="Conditional" >
                  <ContentTemplate>
                      <asp:SqlDataSource ID="Dossier" runat="server" 
                              ConnectionString="<%$ ConnectionStrings:OfficeConnectionString %>" 
                              SelectCommand="AfficheDossiers" SelectCommandType="StoredProcedure">
                                   <SelectParameters>
                                       <asp:SessionParameter Name="Nom_GIAC" SessionField="Nom_GIAC" Type="String" />
                                   </SelectParameters>
                          </asp:SqlDataSource>

                      <asp:SqlDataSource ID="RechercheDossierDS" runat="server" 
                          ConnectionString="<%$ ConnectionStrings:OfficeConnectionString %>" 
                          SelectCommand="rechercherGIAC" SelectCommandType="StoredProcedure">
                          <SelectParameters>
                              <asp:SessionParameter Name="nomgiac" SessionField="Nom_GIAC" Type="String" />
                              <asp:ControlParameter ControlID="RecherhcerComboBox" Name="nom" 
                                  PropertyName="SelectedValue" Type="String" />
                              <asp:SessionParameter Name="par" SessionField="Recherche" Type="String" />
                          </SelectParameters>
                      </asp:SqlDataSource>
                      <asp:GridView ID="DossierGV" runat="server" AllowPaging="True" AllowSorting="True" 
          DataSourceID="Dossier" AutoGenerateColumns="False" DataKeyNames="ID_Dossier">
                          <Columns>
                              <asp:CommandField ShowSelectButton="True" />
                              <asp:BoundField DataField="ID_Dossier" HeaderText="ID_Dossier" ReadOnly="True" 
                                  SortExpression="ID_Dossier" />
                              <asp:BoundField DataField="ID_Entreprise" HeaderText="ID_Entreprise" 
                                  SortExpression="ID_Entreprise" />
                              <asp:BoundField DataField="Date_Dépôt" HeaderText="Date_Dépôt" 
                                  SortExpression="Date_Dépôt" />
                              <asp:BoundField DataField="Type_Etude" HeaderText="Type_Etude" 
                                  SortExpression="Type_Etude" />
                              <asp:BoundField DataField="Dernier_Type" HeaderText="Dernier_Type" 
                                  SortExpression="Dernier_Type" />
                              <asp:BoundField DataField="Eligibilité" HeaderText="Eligibilité" 
                                  SortExpression="Eligibilité" />
                              <asp:BoundField DataField="Fiche_Information" HeaderText="Fiche_Information" 
                                  SortExpression="Fiche_Information" />
                              <asp:BoundField DataField="Bulletin_d’adhésion" HeaderText="Bulletin_d’adhésion" 
                                  SortExpression="Bulletin_d’adhésion" />
                              <asp:BoundField DataField="Fiche_Renseignment" HeaderText="Fiche_Renseignment" 
                                  SortExpression="Fiche_Renseignment" />
                              <asp:BoundField DataField="Attestation" HeaderText="Attestation" 
                                  SortExpression="Attestation" />
                              <asp:BoundField DataField="Date_Début" HeaderText="Date_Début" 
                                  SortExpression="Date_Début" />
                              <asp:BoundField DataField="Date_Fin" HeaderText="Date_Fin" 
                                  SortExpression="Date_Fin" />
                              <asp:BoundField DataField="ID_Cabinet" HeaderText="ID_Cabinet" 
                                  SortExpression="ID_Cabinet" />
                              <asp:BoundField DataField="Montant_Demander" HeaderText="Montant_Demander" 
                                  SortExpression="Montant_Demander" />
                              <asp:BoundField DataField="Durée" HeaderText="Durée" SortExpression="Durée" />
                              <asp:BoundField DataField="Pourcentage,Taux" HeaderText="Pourcentage,Taux" 
                                  SortExpression="Pourcentage,Taux" />
                          </Columns>
                      </asp:GridView>
                  </ContentTemplate>
              </asp:UpdatePanel>
       </div>     

手がかりはありますか?

ありがとう、

4

2 に答える 2

4

オンクリックボタンイベントで設定するだけ

gridview.datasource = newDataSource;

次に、

girdView.DataBind();

これがあなたが必要としていたものであるかどうか私に知らせてください。

Visual Studio 2010を使用している場合は、.aspxファイルをクリックしてから、ウィンドウの右下にあるデザインビューをクリックする必要があります。これにより、画面のモックアップが読み込まれ、クリックイベントを実行するボタンをダブルクリックするだけで済みます。次に、コードビハインド(.aspx.cs)ファイルにリダイレクトされます。その方法では、これを書く必要があります。

ボタンにonclick="methodName"プロパティがないことがわかったので、今だけ言います

于 2012-05-26T17:28:01.463 に答える
1

条件に応じて、コードビハインドでデータソースを提供できます。

   if(someCondition)
       myStoredProcedure = "storedProc1";
    else
       myStoredProcedure = "storedProc2";

    SqlDataSource dataSource = new SqlDataSource(ConfigurationManager.ConnectionStrings["connstr"].ConnectionString, searchQuery);
    dataSource.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
    dataSource.SelectCommand = myStoredProcedure;
    dataSource.ID = "myDataSource";

   // Your code to set datasource to grid

   gridBookings.DataSourceID = dataSource.ID;
   gridBookings.DataBind();
于 2012-05-26T17:33:06.700 に答える