Bonne nuit,Gridview grouping - using gridviewheper
J'ai utilisé l'outil gridviewhelper pour regrouper les lignes dans une grille.
GridViewHelper helper = new GridViewHelper(this.Resultados);
helper.RegisterGroup("EntidadeNome", true, true);
helper.GroupHeader += new GroupEvent(helper_GroupHeader);
this.Resultados.DataSource = DT;
this.Resultados.DataBind();
Chaque ligne comme deux itemtemplate, chacune avec une case à cocher.
<asp:GridView ID="Resultados" runat="server" AutoGenerateColumns="false" GridLines="None"
CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt"
ShowHeader="false">
<Columns>
<asp:BoundField DataField="EntidadeNome" SortExpression="EntidadeNome" />
<asp:BoundField DataField="ID" HeaderText="IDLinhascompras" ItemStyle-CssClass="hidden"
HeaderStyle-CssClass="hidden" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField DataField="Artigo" HeaderText="Artigo" SortExpression="Artigo" ItemStyle-Width="50px"
ItemStyle-HorizontalAlign="Center" />
// Some BoundFieds here
<asp:TemplateField HeaderText="A" ItemStyle-Width="40px" SortExpression="A">
<ItemTemplate>
<asp:CheckBox ID="A" Width="40" runat="server" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="R" ItemStyle-Width="40px" SortExpression="R">
<ItemTemplate>
<asp:CheckBox ID="R" Width="40" runat="server" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<label>Sem resultados para apresentar</label>
</EmptyDataTemplate>
</asp:GridView>
Je rencontre des problèmes lorsque je recherche les lignes cochées.
protected void EnviaArtigos_Click(object sender, EventArgs e)
{
CheckBox chkA, chkR;
foreach (GridViewRow dataItem in Resultados.Rows)
{
object rows;
chkA = (CheckBox)dataItem.FindControl("A");
chkR = (CheckBox)dataItem.FindControl("R");
if (chkA.Checked)
{
try
{
Motor.DSO.BDAPL.Execute("UPDATE LINHASCOMPRASSTATUS SET ESTADOTRANS = 'A' WHERE IDLINHASCOMPRAS ='" + dataItem.Cells[1].Text + "'", out rows,
-1);
this.Resultados.DataSource = null;
this.Resultados.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
if (chkR.Checked)
{
try
{
Motor.DSO.BDAPL.Execute("UPDATE LINHASCOMPRASSTATUS SET ESTADOTRANS = 'R' WHERE IDLINHASCOMPRAS ='" + dataItem.Cells[1].Text + "'", out rows, -1);
this.Resultados.DataSource = null;
this.Resultados.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
Je vois lors du débogage, que pour une raison quelconque la case est cochée dans la ligne qui ont le GroupHeader, puis, dans la ligne qui est effectibly sélectionnée, la case n'est pas cochée.
Donc, en quelques mots, comment puis-je contourner la ligne de tête de groupe et rechercher uniquement les cases à cocher dans les autres lignes?
Merci.
EDIT: L'erreur: La conversion a échoué lors de la conversion d'une chaîne de caractères en identificateur unique.
Peut-être que vous devriez nous en dire plus au sujet de cette classe GridViewHelper ... il ne fait pas partie de la framework –
J'ai trouvé la classe ici: http://www.agrinei.com/gridviewhelper/gridviewhelper_fr.htm –