2013-06-18 4 views
0

GridView 내에 항목 템플릿을 만들었습니다. asp.net에서 Hashset의 데이터를 ItemTemplate에 바인딩하는 방법 C#

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" 
    CellPadding="3" GridLines="Horizontal" onrowdatabound="GridView1_RowDataBound" > 
    <AlternatingRowStyle BackColor="#F7F7F7" /> 
    <Columns> 
     <asp:TemplateField HeaderText="ID"> 
      <ItemTemplate> 
       <asp:Label ID="Label1" runat="server" Enabled='<%# Eval("id") %>' 
        Text="Label"></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 

지금 내 문제는 내가 일부 중복 된 ID의의를 가지고 있고 만의 고유 ID의

var id = new HashSet<String>(); 
id.Add("1"); 
id.Add("1"); 
id.Add("2"); 
id.Add("3"); 
id.Add("4"); 
id.Add("5"); 
Gridview1.DataSource=id; 
Gridview1.DataBind(); 

내가 생각하는 뭔가를 표시하려는 때문에 해시 세트의 "ID"를 저장하고있는로 worong한다 평가 메소드와 나는 그것이 Hashset으로부터 가치를 얻고 있다고 생각하지 않는다.

누군가가 Hashste에서 Eval 데이터를 바인딩하는 방법을 설명 할 수 있습니까?

또한 ItemTemplate을 사용하지 않으면 Hashset 값에서 직접 gridiew를 채울 수 있습니다. 그러나 항목 템플릿을 사용하여 중첩 된 gridview를 만들려고합니다.

궁금한 점이 있으면 알려주세요.

+0

당신은'Collection'에'Eval'을 사용하고 있습니다. – Romoku

+0

예, 컬렉션에서 작동 할 것으로 생각했기 때문입니다. 그 밖의 무엇을 사용할 수 있습니까? – Huzaifa

답변

1

변수 이름을 id로 지정했기 때문에 기본 형식에는 속성 id이 포함되지 않습니다.

당신은 DataSource 같은 익명 형식을 사용할 수 있습니다 그러나, 당신이 Id에서 부울 속성 (Enabled)을 설정하려고

var ids = new HashSet<String>(); 
ids.Add("1"); 
ids.Add("1"); 
ids.Add("2"); 
ids.Add("3"); 
ids.Add("4"); 
ids.Add("5"); 
Gridview1.DataSource = ids.Select(id => new { id }).ToList(); 
Gridview1.DataBind(); 

. 그건 틀린 것 같습니다.

(가 배수를 포함하고 있기 때문에 내가 idsid에서 HashSet의 이름을 변경했습니다 주)

+0

안녕하세요, "지정된 캐스트가 유효하지 않습니다". 그런 식으로 HashSet을 캐스팅 할 수 있습니까? – Huzaifa

+0

@ 존 : 당신은 당신의 id로'bool' 속성'Enabled'을 설정하려고한다는 것을 알아 챘습니까? –

+0

예. 어떻게 내가 그걸 만들겠습니까? – Huzaifa