Спокойной ночи,
Я использовал gridviewhelper, чтобы сгруппировать строки в gridview.
GridViewHelper helper = new GridViewHelper(this.Resultados);
helper.RegisterGroup("EntidadeNome", true, true);
helper.GroupHeader += new GroupEvent(helper_GroupHeader);
this.Resultados.DataSource = DT;
this.Resultados.DataBind();
Каждая строка состоит из двух элементов, каждая с флажком.
<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>
У меня возникают некоторые проблемы при поиске строк, у которых установлен флажок.
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);
}
}
}
При отладке я вижу, что по какой-то причине флажок установлен в строке, в которой есть заголовок группы, а затем в строке, которая выбрана эффективно, флажок не установлен.
Итак, в двух словах, как я могу обойти строку заголовка группы и искать только флажки в других строках?
Спасибо.
РЕДАКТИРОВАТЬ: Ошибка: Преобразование не удалось при преобразовании из символьной строки в уникальный идентификатор.