2011-04-01 4 views
1

중첩 된 gridview를 사용하면 부모 GridView를 gridview1로, 자식 gridview를 gridview2로 호출 할 수 있습니다.Gridview ItemTemplate의 레이블을 문자열에 바인딩하는 것에 관한 쿼리

부모 모눈의 (gridview1) 행마다 gridview1의 특정 행에있는 송장 번호에 따라 자식 gridview (gridview2)가 추가됩니다. 다음은 해당 출력 here의 스크린 샷입니다.

자식 격자보기 (예 : gridview2)에는 목록 템플릿을 통해 추가하는 다운로드 linkbutton이 있습니다. 소프트웨어 템플릿을 사용하면 gridview2에 데이터 바인딩을 적용하여 목록 <>을 통해 출력을 필터링 할 수 있습니다. 그러나 당신이 볼 수 있듯이 다운로드 링크가 먼저 렌더링되고 그 다음 소프트웨어 타이틀이 렌더링됩니다. 하지만 소프트웨어 제목을 먼저 렌더링하고 하위 gridview의 마지막 열 (예 : gridview2)로 링크 버튼을 다운로드하고 싶습니다.

다음은 중첩 된 gridviews에 대한 .aspx 페이지의 코드입니다. 이 포럼의 동료 회원으로부터 다운로드 링크 버튼 앞에 레이블을 추가하고 데이터 소스와 연결할 수 있다는 제안을 받았습니다. 나는 단지 그것을 이해할 수 없었다. 어떻게 할 수 있습니까? 여기에 덧붙여서

내가 소스와 자식 gridview에 결합있어 코드 (전 부모의 gridview에 존재 송장 번호에 기초하여 필터링 ArrayList를 인 (즉, gridview1)).

protected void UserTransactionGridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      GridView gridView2 = (GridView)e.Row.FindControl("gridView2"); 
      System.Data.DataRowView dr = (System.Data.DataRowView)e.Row.DataItem; 
      gridView2.AutoGenerateColumns = true; 
      String x = dr[1].ToString(); 
      softwareTitlesList = SoftwareListRetrieve(); 
      ArrayList titles = new ArrayList(); 
      foreach (SoftwareTitles softwareTitle in softwareTitlesList) 
      { 
       if (softwareTitle.InvoiceNumber.Contains(x)) 
        titles.Add(softwareTitle.SoftwareTitle); 
      } 
      gridView2.DataSource = titles; 
      gridView2.DataBind(); 
      softwareTitlesList.Clear(); 
     } 
    } 

현재 나는 웹 응용 프로그램 프로젝트에 Visual Studio 2008, asp.net/C# 및 LINQ를 사용하고 있지 않습니다. 도와주세요.

는 예상

PS 감사 : 어떤 사람이 질문을 좋아하지 않는 경우 u는 오히려 아래로 투표를하거나하지 않다고 생각보다 대답하기 후 삭제할 수 있습니다.

답변

1

1 :

이 당신의 GV2에 AutoGenerateColumns = "false"를 추가 <% #의 Container.DataItem %의> 직전 별도의 TemplateField를 대신 추가 할 수

<asp:GridView ID="gridView2" runat="server" HorizontalAlign="Left" GridLines="None" ShowHeader="false" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="100px"> 
      <ItemTemplate> 
       <%#Container.DataItem %> 
       <asp:LinkButton ID="DownloadLbtn" Text="Download" runat="server" OnClick="DownloadLbtn_Click"></asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

하는 LinkButton 기존에 추가하기 전에 동일하게 추가하지만 링크 버튼 옆에 표시되는 이유를 알 수 있습니다.

관련 문제