Bonjour je voudrais mettre une grid view dans une gridview avec des info de deux tables(ORDER et JOB) en relation,
j'ai donc suivi un exemple
La gridview Parent est la numero
GridView3 attaché à la datasource SqlDataSource5
La gridview Enfantest la numero
GridView4 attaché à la datasource SqlDataSource4
Le lien est l'identifiant order_id rappelé dans chaque Job associé
Le probleme est que lorque j'execute le code les données de la gridview4 affichées sur chaque ligne sont identique et corresponde au dernier Order_Id:
| Order_Id | Order_Name | |
|---|
21 Ordre1 | Job_Name | Job_Status |
|---|
| test | 0 | | ooiuu | 0 | | toto az la plage | 0 |
|
22 Ordre2 | Job_Name | Job_Status |
|---|
| test | 0 | | ooiuu | 0 | | toto az la plage | 0 |
|
23 Ordre3 | | Job_Name | Job_Status |
|---|
| test | 0 | | ooiuu | 0 | | toto az la plage | 0 |
|
Les données de la grid view enfant sont repetée sur chaque ligne au lieu de récuperer les données associé à l'order id de la ligne
Code:
<asp:GridViewID="GridView3"runat="server"AutoGenerateColumns="False"DataSourceID="SqlDataSource5"Width="470px"DataKeyNames="Order_Id"onrowdatabound="GridView3_RowDataBound"><Columns><asp:BoundFieldDataField="Order_Id"HeaderText="Order_Id"SortExpression="Order_Id"InsertVisible="False"ReadOnly="True"/><asp:BoundFieldDataField="Order_Name"HeaderText="Order_Name"SortExpression="Order_Name"/><asp:TemplateField><ItemTemplate><asp:GridViewID="GridView4"runat="server"AutoGenerateColumns="False"DataSourceID="SqlDataSource4"Width="470px"><Columns><asp:BoundFieldDataField="Job_Name"HeaderText="Job_Name"SortExpression="Job_Name"InsertVisible="False"ReadOnly="True"/><asp:BoundFieldDataField="Job_Status"HeaderText="Job_Status"SortExpression="Job_Status"InsertVisible="False"ReadOnly="True"/></Columns></asp:GridView></ItemTemplate></asp:TemplateField></Columns></asp:GridView><asp:SqlDataSourceID="SqlDataSource4"runat="server"ConnectionString="<%$ ConnectionStrings:Shooter_Test1ConnectionString %>"SelectCommand="SELECT [Job_Name], [Job_Priority], [Job_Status] FROM [Job] WHERE ([Order_Id] = @Order_Id)"EnableViewState="False"ondatabinding="SqlDataSource4_DataBinding"onselected="SqlDataSource4_Selected"onselecting="SqlDataSource4_Selecting"><SelectParameters><asp:ParameterName="Order_Id"Type="Int32"/></SelectParameters></asp:SqlDataSource><asp:SqlDataSourceID="SqlDataSource5"runat="server"ConnectionString="<%$ ConnectionStrings:Shooter_Test1ConnectionString %>"SelectCommand="SELECT [Order_Id],[Order_Name], [Order_Priority], [Order_Status] FROM [Order] "></asp:SqlDataSource>protected
void GridView3_RowDataBound(object sender, GridViewRowEventArgs e){
if (e.Row.RowType == DataControlRowType.DataRow) {
//SqlDataSource s = (SqlDataSource)e.Row.FindControl("SqlDataSource4"); // s.SelectParameters[0].DefaultValue = e.Row.Cells[0].Text; SqlDataSource4.SelectParameters[0].DefaultValue = e.Row.Cells[0].Text;
//SqlDataSource4.DataBind(); }
}
Merci d'avance