Pb Gridview dans une gridview

jfcecile Messages postés 15 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 11 février 2009 - 17 avril 2008 à 17:10
jfcecile Messages postés 15 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 11 février 2009 - 18 avril 2008 à 09:46
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:

<tr><th scope= "col">Order_Id    </th><th scope="col">Order_Name  </th><th scope="col"> </th>

</tr><tr><td>21               Ordre1

Job_Name |Job_Status |----
test, 0, ----
ooiuu, 0, ----
toto az la plage, 0

</td></tr><tr style ="BACKGROUND-COLOR: white"><td>
22               Ordre2
Job_Name |Job_Status |----
test, 0, ----
ooiuu, 0, ----
toto az la plage, 0
</td></tr><tr><td>
23               Ordre3</td><td>
Job_Name |Job_Status |----
test, 0, ----
ooiuu, 0, ----
toto az la plage, 0

</td></tr>
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:GridView
ID="GridView3"
runat="server"
AutoGenerateColumns="False"

DataSourceID="SqlDataSource5"
Width="470px"
DataKeyNames="Order_Id"

onrowdatabound="GridView3_RowDataBound">

<Columns>

<asp:BoundField
DataField="Order_Id"
HeaderText="Order_Id"

SortExpression="Order_Id"
InsertVisible="False"
ReadOnly="True"
/>

<asp:BoundField
DataField="Order_Name"
HeaderText="Order_Name"

SortExpression="Order_Name"
/>

<asp:TemplateField>

<ItemTemplate>

<asp:GridView
ID="GridView4"
runat="server"
AutoGenerateColumns="False"

DataSourceID="SqlDataSource4"
Width="470px"
>

<Columns>

<asp:BoundField
DataField="Job_Name"

HeaderText="Job_Name"

SortExpression="Job_Name"

InsertVisible="False"

ReadOnly="True"/>

<asp:BoundField
DataField="Job_Status"

HeaderText="Job_Status"

SortExpression="Job_Status"

InsertVisible="False"

ReadOnly="True"/>

</Columns>

</asp:GridView>

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

<asp:SqlDataSource
ID="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:Parameter
Name="Order_Id"
Type="Int32"
/>

</SelectParameters>

</asp:SqlDataSource>

<asp:SqlDataSource
ID="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

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
17 avril 2008 à 19:44
0
jfcecile Messages postés 15 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 11 février 2009
18 avril 2008 à 09:46
Merci de ton aide mais je n'arrive pas à trouvé la solution pour que le parametres identifiant passé à la deuxieme gridview soit seulement celui de la ligne correspondante

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();

      }

Le probleme c'est que ce sont les données de la derniere ligne qui sont repeté dans les gridview imbriquée

Si vous avez des idées

Merci d'avance
0
Rejoignez-nous