Выберите несколько строк сетки для отображения в ASP.NET webform2

Доброе утро,

У меня есть сетка, в которую я вставляю данные с таблицей данных, которая отлично работает, это усложняет меня при размещении строки флажка, так что пользователь может выбрать строку, которую он хочет сделать Ваше управление Это HTML-код:

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateField> <HeaderTemplate> <asp:CheckBox ItemStyle-Width="150px" ID="cbSelect" runat="server" AutoPostBack="True" OnCheckedChanged="cbSelect_CheckedChanged" /> </HeaderTemplate> <ItemTemplate> <asp:CheckBox ItemStyle-Width="150px" ID="cbSelected" runat="server" AutoPostBack="True" OnCheckedChanged="cbSelected_CheckedChanged" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Poliza"> <ItemTemplate> <asp:Label ID="Poliza" runat="server" Text='<%# Bind("POLIZA") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:BoundField ItemStyle-Width="150px" DataField="RAMO" HeaderText="Ramo" /> <asp:BoundField ItemStyle-Width="150px" DataField="CERTIF" HeaderText="Certificado" /> <asp:BoundField ItemStyle-Width="150px" DataField="NOMRMO" HeaderText="Ramo" /> <asp:BoundField ItemStyle-Width="150px" DataField="CIA" HeaderText="N. Comp" /> <asp:BoundField ItemStyle-Width="150px" DataField="NOMCIA" HeaderText="Compañia" /> <asp:BoundField ItemStyle-Width="150px" DataField="RIF" HeaderText="Ident" /> <asp:BoundField ItemStyle-Width="150px" DataField="CCT" HeaderText="Num" /> </Columns> </asp:GridView>

и в бэкэнде у меня есть код, который заполняет сетку и выполняет проверки, если флажок был установлен и если этот пустой работает отлично

Моя сложность заключается в кнопке для переноса выбранных строк в другую веб-форму, потому что обычно я мог передать файл со свойством «ButtonField» «OnSelectedIndexChanged», но как я могу сделать это с помощью флажка?

У меня есть это в клике, но я не знаю, как двигаться вперед:

protected void Button2_Click(object sender, EventArgs e)
     {
         List<string> test = new List<string>();

         foreach (GridViewRow gridViewRow in GridView2.Rows)
         {
             if (((CheckBox)gridViewRow.FindControl("cbSelected")).Checked)
             {
                 string ejecutivoId = ((Label)gridViewRow.FindControl("Poliza")).Text;
                 test.Add(ejecutivoId);
             }
         }
         if (test.Count > 0)
         {}

Спасибо

0
задан 25.01.2017, 22:56
0 ответов

Когда уже у тебя есть List в другом формуляре:

List<string> polizas = (List<string>)Session["Polizas"];

if (polizas != null && polizas.Any())
{
    // Si quieres un valor especifico del List.
    string variable1 = polizas[0];
    string variable2 = polizas[1];
    // etc...

    // Si quieres recorrer el List y obtener cada valor.
    foreach(string poliza in polizas)
    {
        UnTextBox.Text += poliza + ", ";
    }

    // Si quieres asignarlo a otro grid. Nota: así como tienes el List<string> el otro grid solo debe tener una columna.
    MiOtroGrid.DataSource= polizas;
    MiOtroGrid.DataBind();
}
2
ответ дан 03.12.2019, 17:30

Ты мог бы использовать переменную Session и ты хранишь все отборные полисы, уже в другом формуляре ты возвращаешь вышеупомянутую информацию.

    if (test.Count > 0)
    {
      Session["Polizas"] = test;
      Response.Redirect("Formulario2.aspx");
    }

В другом формуляре в событии Page_Load ты это возвращаешь.

List<string> polizas = Session["Polizas"] as List<string>;
2
ответ дан 03.12.2019, 17:30