更改使用的GridView的数据源ASP .NET的SqlDataSource [英] Change Gridview Datasource using ASP .NET SQLDATASOURCE
问题描述
我有一个GridView与全自动连接sqldatasource1等。对于网格,我也有一个搜索文本框如果用户需要过滤它会调用另一个((sqldatasource2-另一个procuder)),并把它放在同一个记录GridView控件..,所以我需要的gridView.datasourceID更改为另一个SqlDataSource控件的onclick按钮。
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 ..
请注意:
sqldatasource1和sqldatasource2返回相同的查询,
note : sqldatasource1 and sqldatasource2 returning the same queries ,
sqldatasource1的procuder:
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
sqldatasource2的procuder((搜索器):
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
这是搜索文本和按钮:
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;" />
这是在GridView:
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>
任何线索?
感谢,
推荐答案
在的onclick按钮事件刚刚成立
In the onclick button event just set
gridview.datasource = newDataSource;
gridview.datasource = newDataSource;
然后调用
girdView.DataBind();
girdView.DataBind();
让我知道这是你需要的。
Let me know if this is what you needed.
如果您正在使用Visual Studio 2010中,您需要点击您的.aspx文件,然后单击窗口右下角的设计视图。这将加载屏幕的模拟了,你可以直接双击你想要的单击事件的按钮。然后,它会将您重定向到后面(.aspx.cs)文件中的code。在该方法是你需要写这个。
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.
我只是因为我看到你的按钮有现在说这个没有的onclick =方法名的属性。
I only say this now because I see that your button has no onclick="methodName" property
这篇关于更改使用的GridView的数据源ASP .NET的SqlDataSource的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!