2013-03-05 2 views
0
protected void BindGV() 
     { 
      List<List<string>> list = new List<List<string>>() 
      { 
       new List<string>() {"Hussain","IT","Hyderabad" }, 
       new List<string>() { "Sharief","IT","Bangalore"}, 
       new List<string>() { "Shaik","IT","Chennai"} 
      }; 
      gv1.DataSource = list; 
      gv1.DataBind(); 

     } 

Gridview에 이름과 도시 만 표시하고 싶습니다. 다음과 같이 사용하고 싶습니다.컬렉션을 Gridview에 바인딩

<asp:Boundfield Datafield="" Headertext="Name"/> 

이 경우 DataField를 사용하는 방법 ??

+0

잘 모르겠지만 linq –

답변

4

우선, 문자열이 아닌 클래스로 목록을 만들어야합니다. 그런 다음 DataGrid의 클래스 속성을 열로 사용할 수 있습니다. 예를 들어

: 뒤에

<asp:DataGrid runat="server" ID="gv1" AutoGenerateColumns="False> 
    <Columns> 
     <asp:BoundColumn HeaderText="Name" DataField="Name" /> 
     <asp:BoundColumn HeaderText="Dept" DataField="Department" /> 
     <asp:BoundColumn HeaderText="City" DataField="Location" /> 
    </Columns> 
</asp:DataGrid> 

같은 데이터 그리드를 만들 그리고 그것을해야 당신의 코드에서

protected void BindGV() 
{ 
    List<Personnel> list = new List<Personal>() 
    { 
     new Personnel {Name = "Hussain", Department = "IT", Location = "Hyderabad" }, 
     new Personnel {Name = "Sharief", Department = "IT", Location = "Bangalore"}, 
     new Personnel {Name = "Shaik", Department = "IT", Location = "Chennai"} 
    }; 

    gv1.DataSource = list; 
    gv1.DataBind(); 

} 

:

public class Personnel 
{ 
    public string Name { get; set; } 
    public string Department { get; set; } 
    public string Location { get; set; } 
} 

이 그럼 당신은 같은 데이터 소스를 만들 수 있습니다.

업데이트 : 사용자 의견에 따르면 프로그래밍 방식으로 DataField에 액세스하려고합니다. gv1.Columns 속성을 열거하고 결과를 BoundColumn으로 캐스팅하면됩니다. 그러면 DataField 및 기타 속성에 액세스 할 수 있습니다.

+1

+1을 사용하면 더 간단하게 만들 수 있습니다. – jomsk1e

+0

예, 위의 주어진 접근법을 알고 있습니다. 하지만이 경우 Datafiled에 액세스하는 방법을 알고 싶습니다. – user1849388

+0

프로그래밍 방식으로 DataField에 액세스 하시겠습니까? 그렇다면 내 업데이트 부분을 확인하십시오. –

1

후세인은 처음에 클래스를 Get, Set으로 작성했습니다.

<ItemTemplate..> 
    <b><%# DataBinder.Eval(Container, "DataItem.Title") %> </b> 
    <br /> 
    <%# DataBinder.Eval(Container, "DataItem.Description") %> 
</ItemTemplate> 

... 또는 Apsx.cs 코드 .... aspx 페이지 GRIDVIEW BoundField에서

Public class BindGV 
{ 
    public string name { get; set ;} 
    public string Profile { get; set ;} 
    public string loc { get; set ;} 
} 

처럼

BindGV.datasource=object.GetDetails(); 
BindGV.dataBind(); 
0

당신은 LINQ의 장점을 취할 수

List<List<string>> list = new List<List<string>>() 
           { 
           new List<string>() {"Hussain", "IT", "Hyderabad"}, 
           new List<string>() {"Sharief", "IT", "Bangalore"}, 
           new List<string>() {"Shaik", "IT", "Chennai"} 
           }; 

linq query

var v = from li in list select new {Name = li[0], City=li[2]}; 
gv1.DataSource = v; 
gv1.DataBind(); 

그리고

<asp:DataGrid runat="server" ID="gv1" AutoGenerateColumns="False> 
    <Columns> 
    <asp:BoundColumn HeaderText="Name" DataField="Name" /> 
    <asp:BoundColumn HeaderText="City" DataField="City" /> 
</Columns> 
</asp:DataGrid> 

있는 gridview

그러나 이것은 사용하는 것은 좋지 않습니다.
두 명의 부드러운 남성이 제안한대로 적절한 건물 구조를 갖추어야합니다.

관련 문제