2014-03-25 14 views
0

BoundField 열이있는 gridview 있고이 BoundField 특별히 새 행을 삽입하고 싶습니다. 이 작업을 수행 할 수 있습니까? 내가 일하고자하는 대신 BoundField의 내가 사업부 또는 패널에 부착 할 수있는 새 행에 SiteNumber의 바인딩을하고 싶은 것입니다Boundfield 새 행

    <asp:GridView ID="grdAgreements" runat="server" AutoGenerateColumns="false" Width="100%" 
     AllowSorting="false" AlternatingRowStyle-BackColor="White" 
     HeaderStyle-BackColor="White" HeaderStyle-ForeColor="GrayText" 
     Font-Names="Arial" Font-Size="11" DataKeyNames="AgreementId" OnRowCreated="grdAgreements_RowCreated" > 
     <rowstyle height="24" /> 

    <Columns> 
     <asp:BoundField HeaderText="Agreement Number" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="AgreementNumber" SortExpression="AgreementNumber" ItemStyle-Width="110" ItemStyle-Font-Names="Arial" /> 
     <asp:BoundField HeaderText="Description" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="Description" SortExpression="Description" ItemStyle-Width="100" ItemStyle-Font-Names="Arial" /> 
     <asp:BoundField HeaderText="Start Date" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="StartDate" SortExpression="StartDate" ItemStyle-Width="125" ItemStyle-Font-Names="Arial" /> 
     <asp:BoundField HeaderText="End Date" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="EndDate" SortExpression="EndDate" ItemStyle-Width="200" ItemStyle-Font-Names="Arial" /> 

     <asp:BoundField HeaderText="Site Number" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" DataField="SiteNumber" SortExpression="SiteNumber" ItemStyle-Width="200" ItemStyle-Font-Names="Arial" /> 

    </Columns> 

    <EmptyDataTemplate> 
     There are no agreements to display. 
    </EmptyDataTemplate> 
</asp:GridView> 

다음과 같이

코드는 . 어떻게해야합니까?

답변

0

보통의 시간 제약 조건에 따라 필자의 요구에 따라 Listview를 사용하는 가장 좋은 방법을 찾아 냈지만 TemplateField 내에서 스타일이 지정된 테이블을 사용하여 찾고 있던 레이아웃을 얻는 방법을 찾아 냈습니다 및 ItemTemplate. 다음 코드는 내가 생각해 낸 것입니다. 그러면이 방법이 비슷한 솔루션을 찾는 다른 사람을 도울 것입니다. 시간 제한이 당신의 접시에 없다면, 저는 Listview 컨트롤을 더 살펴볼 것을 강력하게 제안합니다. 오후 8시 30 분 P.S. 내가 사용한 CSS는 거대한 PITA로 모든 것을 완벽하게 만들었지 만 확실히 가치가있었습니다. 그리고 이것은 모두 GridView 내에 있습니다.

<asp:TemplateField> 
     <ItemTemplate> 
     <div class="EquipmentTable1" > 
      <table > 
       <tr> 
        <td> 
         Customer Equipment 
        </td> 
        <td> 
         Contract 
        </td> 
        <td > 
         Contract Number 
        </td> 

        <td> 
         Modality 
        </td> 
       </tr> 
       <tr> 
        <td> 
        <%--TODO link this to the customer equipment record pulled from the services web portal guide part 1 document--%> 
         <a href="../Agreements/AgreementList.aspx?CustomerEquipmentID=<%# Eval("CustomerEquipmentID") %>"><%# Eval("CustomerEquipmentID") %> </a> 
        </td> 
        <td > 
        <%--Link to the agreement page and 
        pass in the agreement id as a query string to do a lookup of the agreement--%> 
        <a href="../Agreements/AgreementView.aspx?AgreementID=<%# Eval("AgreementID") %>"><%# Eval("AgreementID") %></a> 
        </td> 
        <td> 
         <%# Eval("AgreementLineID") %> 
        </td> 

        <td> 
         <%# Eval("ModalityID") %> 
        </td> 
       </tr> 
      </table> 
     </div> 
    <div class="EquipmentTable2" > 
      <table > 
       <tr> 
        <td> 
         Product 
        </td> 
        <td > 
         Model Number 
        </td> 
        <td> 
         Room Number 
        </td> 
        <td> 
         Date Installed 
        </td> 
       </tr> 
       <tr> 
        <td > 
         <%# Eval("Product") %> 
        </td> 
        <td> 
         <%# Eval("ModelNumber") %> 
        </td> 
        <td> 
         <%# Eval("RoomNumber") %> 
        </td> 
        <td> 
         <%# Eval("DateInstalled") %> 
        </td> 
       </tr> 
      </table> 
     </div> 
     </ItemTemplate> 
     </asp:TemplateField> 
1

내가 제대로 이해하고 있지 않다 알려줘 있지만 필드의 레이아웃을 사용자 정의하려면 대신 BoundField

<asp:TemplateField HeaderText="SiteNumber" SortExpression="SiteNumber"> 
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server" Text='<%# Bind("SiteNumber") %>'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

TemplateField을 사용할 수 있습니다하지만 당신은에서 특정 열을 이동 생각하는 경우 새로운 행에 추가하면 GV 마크 업이 사용자 정의 할 수 없기 때문에 ListView 또는 Repeater와 같은 다른 데이터 바인딩 컨트롤을 조사해야합니다.

+0

두 번째 설명은 스팟입니다. 나는 그 특정 BoundField ("SiteNumber")가 다른 BoundField의 모든 데이터 바로 뒤에있는 자신의 행이되도록하고 싶습니다. 기본적으로 레이아웃을 원합니다 : Row1 = 계약 번호, 설명, 시작 날짜, 종료 날짜 Row2 = SiteNumber 그런 다음 두 행을 반복하십시오. ListView 또는 Repeater를 사용하여이 작업을 수행 할 수 있습니까? – mW00t

+1

예. ListView 또는 Repeater를 사용하여 원하는대로 구조를 지정할 수 있습니다. http://msdn.microsoft.com/en-us/library/bb398790.aspx – gbs

+0

완벽하게, 정확하게 내가 찾고 있던 것입니다. – mW00t