Gute Nacht,Gridview-Gruppierung - mit gridviewheper
Ich habe den Gridviewhelper verwendet, um die Zeilen in einer Gridview zu gruppieren.
Jede Zeile als zwei ItemTemplate, jeweils mit einem Kontrollkästchen.
<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>
Ich habe einige Probleme, wenn ich für die Zeilen suchen, die eine Checkbox aktiviert haben.
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);
}
}
}
Ich sehe beim Debuggen, dass aus irgendeinem Grund die Checkbox in der Zeile überprüft, die die GroupHeader- haben, und dann, in der Zeile, die effectibly ausgewählt ist, wird das Kontrollkästchen nicht aktiviert ist.
Also, in wenigen Worten, wie kann ich die groupheader Zeile umgehen und nur die Checkboxen in den anderen Zeilen suchen?
Vielen Dank.
EDIT: Der Fehler: Konvertierung fehlgeschlagen beim Konvertieren von einer Zeichenfolge zu uniqueidentifier.
Vielleicht sollten Sie uns sagen, mehr über diese GridViewHelper Klasse ... es ist nicht Teil der Rahmen –
Ich fand die Klasse hier: http://www.agrinei.com/gridviewhelper/gridviewhelper_en.htm –