2014-12-08 5 views
0

Я хочу отображать данные в gridview на основе выбора флажка из другого вида сетки. Приведенный ниже код получает значения из первого gridview на основе выбора флажка. Я хочу привязать эти значения во вторую сетку. Помогите найти правильное решение. Спасибо.Как связать строку с сеткой?

Код:

protected void btnAssign_Click(object sender, EventArgs e) 
    { 
    foreach (GridViewRow row in GridView1.Rows) 
     { 
     if (row.RowType == DataControlRowType.DataRow) 
      { 
       CheckBox chkRow = (row.Cells[2].FindControl("CheckBox1") as CheckBox); 
       if (chkRow.Checked) 
       { 
        string[] EmpId = new string[] { row.Cells[0].Text }; 
        string[] EmpName = new string[] { row.Cells[1].Text}; 

// Я хочу, чтобы отобразить EMP идентификатор и имя EMP на GridView 2 на основе выбора флажок. Как я могу сделать. Помогите мне найти правильное решение

    GridView2.DataSource = EmpId; 
        GridView2.DataBind(); 
       } 

      } 

     } 
    } 

ASPX:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> 
<Columns> 
<asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" ReadOnly="True" SortExpression="EmployeeID" /> 
<asp:BoundField DataField="FirstName" HeaderText="Employee Name" ReadOnly="True" SortExpression="FirstName" /> 


<asp:TemplateField HeaderText="Select" SortExpression="Select"> 
<EditItemTemplate> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
</EditItemTemplate> 
<ItemTemplate> 
<asp:CheckBox ID="CheckBox1" runat="server" /> 
</ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 

<asp:GridView ID="GridView2" runat="server"> </asp:GridView> 

Данный ниже изображение показывает данные в виде сетки на основе выпадающего выбора. После этого я хочу выбрать некоторые строки и нажать «Назначить», тогда я должен отобразить выбранные строки в новом gridview. Изображение:

enter image description here

+0

Я редактировал свой титул. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

0

Если вы еще не имеют сильный тип, определенный для представления вашего выбранного сотрудника, вы можете создать словарь для хранения выбранных ваших сотрудников. По завершении вашей итерации по строкам GridView1 для получения выбранных сотрудников вы можете использовать словарь в качестве источника данных для GridView2 и привязываться к ключу и значению каждой записи.

protected void btnAssign_Click(object sender, EventArgs e) 
{ 
    Dictionary<int, string> selectedEmployees = new Dictionary<int, string>(); 
    foreach (GridViewRow row in GridView1.Rows) 
    { 
     if (row.RowType == DataControlRowType.DataRow) 
     { 
      CheckBox chkRow = (row.Cells[2].FindControl("CheckBox1") as CheckBox); 
      if (chkRow.Checked) 
      { 
       selectedEmployees.Add(int.Parse(row.Cells[0].Text), row.Cells[1].Text); 
      } 
     } 
    } 

    if (selectedEmployees.Any()) 
    { 
     gridView2.DataSource = selectedEmployees; 
     gridView2.DataBind(); 
    } 

}

UPDATE: Обновлен код для учета, за исключением, что вы получающего с кодом образца при условии

+0

, используя ваше решение, получив одну ошибку. Ошибка: «Строка ввода не была в правильном формате». – Vipin

Смежные вопросы