3
Gridview에 데이터 테이블을 바인딩하려고하는데 코드의 일부에서 자동 생성 된 열을 제거했습니다.Gridview는 열 제거 후 ItemTemplate을 잃습니다.
두 개의 템플릿 열이 있는데, 코드에서 Gridview를 변경하고 템플릿이 아닌 열을 제거하면 템플릿에있는 컨트롤이 느슨해 진 것 같습니다.
다음 샘플을 사용하여 "머리글 A"는 계속 표시되지만 인덱스 2 이상에있는 열을 제거하면 "머리글 B"가 사라집니다. 필자는 코드 작성 도구 모음의 일부로 그리드의 코드 숨김에 열을 생성합니다. 열을 제거하지 않으면 문제가없는 것 같습니다.
<asp:GridView ID="DataGrid1" runat="server" AutoGenerateColumns="false" AllowPaging="True" PageSize="10" GridLines="Horizontal">
<Columns>
<asp:TemplateField HeaderText="Header A" >
<ItemTemplate >
Text A
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Header B
</HeaderTemplate>
<ItemTemplate>
Text B
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
For i = 2 To DataGrid1.Columns.Count - 1
DataGrid1.Columns.RemoveAt(2)
Next
편집
그래서 내가 읽은 어떤에서이 그리드가 변경 될 때 발생하는 문제가 될 것으로 보인다. 누구든지 좋은 해결 방법을 알고 템플릿 열을 다시 초기화하거나 다시 설정하여 템플릿이 아닌 열을 제거하면 hte 템플릿도 제거되지 않도록 할 수 있습니까?
어쩌면 내가 누락되었지만 ... "AutoGenerateColumns"를 false로 설정하면 자동 생성 열이 왜 생깁니 까? –
나 자신의 코드에 추가합니다. 여러 resons 난 그냥 내 데이터를 컨트롤에 databind 수 없습니다 당신이 일반적으로 기대할 수있는 것처럼 columsn 만들 수 있습니다. 처음에는 그래서 나는 기본적으로 그 columsn 및 매개 변수를 만들려면 메시징 공정한 비트가 있습니다. 내 코드 숨김에. – Middletone