2014-12-08 2 views
0

격자보기에서 다른 격자보기의 확인란 선택에 따라 데이터를 표시하려고합니다. 아래의 코드는 체크 박스 선택을 기반으로 첫 번째 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}; 

는 // 나는 체크 박스 선택에 따라 gridview에 2 EMP ID와 EMP 이름을 표시합니다. 어떻게해야합니까? 적절한 용액을

    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> 

화상 드롭 다운 선택에 기초하여 그리드에서 보아 데이터를 보여주는 대해서 설명. 그 후 일부 행을 선택하고 할당을 클릭 한 다음 새 행보기에서 선택한 행을 표시해야합니다. 이미지 : 이미 선택한 직원을 대표하는 정의 강한 유형이없는 경우

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(); 
    } 

}

업데이트 : 샘플 코드로 수신 된 예외을 고려하여 코드를 업데이트 내가 제목을 편집 한

+0

한 가지 오류가 발생하여 솔루션을 사용하는 중입니다. 오류는 "입력 문자열이 올바른 형식이 아닙니다"입니다. – Vipin

관련 문제