2009-03-14 9 views
1

데이터 목록에 바인딩 할 사전이 있습니다. 그러나 DataList의 DataKeyField 속성에 대한 사전의 키 값을 사용하려고합니다. 이것이 가능한가?사전에 데이터 목록 바인딩

+0

무엇을 위해 당신이 항목을 표시 할 수 있습니까? – Keltex

답변

2

예. DataKeyField로 "키"를 사용

<asp:DataList ID="datalist" runat="server" DataKeyField="Key"> 
    <ItemTemplate> 
     <asp:Label runat="server" Text='<%# Eval("Value") %>'></asp:Label> 
    </ItemTemplate> 
</asp:DataList> 

코드 :

protected void Page_Load(object sender, EventArgs e) 
{ 
    Dictionary<string, string> dictionary = new Dictionary<string, string>() 
    { 
     {"a", "aaa"}, 
     {"b", "bbb"}, 
     {"c", "ccc"} 
    }; 
    datalist.DataSource = dictionary; 
    datalist.DataBind(); 

    for (int i = 0; i < datalist.Items.Count; i++) 
    { 
     Response.Write(string.Format("datalist.DataKeys[{0}] = {1}<br />", i, datalist.DataKeys[i])); 
    } 
} 
+0

젠장, 음, 이미 다른 방식으로 시도해 봤지만, 훨씬 더 우아하게 작동 할 것이라고 생각하기 때문에 여전히 시도해 볼 것입니다. 답변 해 주셔서 감사합니다. – hanesjw

관련 문제