0

i have a gridview automaticly connecting with sqldatasource1, etc. For the grid, I also have a search textbox If the user needs to filter the records it calls an another ((sqldatasource2-another procuder)) and put it in the same gridview ..,so i need to change the gridView.datasourceID to the another sqldatasource onclick a button ..

note : sqldatasource1 and sqldatasource2 returning the same queries ,

the procuder of 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

the procuder of 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

this is the search text and button :

 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;" />

this is the gridview :

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

Any clues?

thanks,

1
  • can you show some code behind? apart from your queries? where do you bind your datasource, what's in the button click method.. Commented May 26, 2012 at 17:20

2 Answers 2

4

In the onclick button event just set

gridview.datasource = newDataSource;

Then call the

girdView.DataBind();

Let me know if this is what you needed.

If you are using visual studio 2010, you need to click on your .aspx file and then click design view in the bottom right of the window. This will load a mock up of your screen and you can just double click the button that you want the click event on. It will then redirect you to the code behind (.aspx.cs) file. In that method is where you need to write this.

I only say this now because I see that your button has no onclick="methodName" property

1
  • see my edit. Do you have the code going to the onclick event in the code-behind if you set a break point and debug it? Commented May 26, 2012 at 17:31
1

You can give data source in code behind according to the condition.

   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();
2
  • i found a dificulte to undrstand : myStoredProcedure = "storedProc1"; Commented May 27, 2012 at 13:55
  • yes this is it tnkkss .. i understand now ^^ Adil an arabic name tnks again my brother Commented May 27, 2012 at 14:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.