2012-09-03 12 views
11

Załóżmy, że chcę powiązać typ ogólny (tutaj: Dictionary<string, string>) z Repeater przy użyciu silnie typed wiązania danych ASP.NET 4.5.Silnie wpisane powiązanie danych i generyczne?

Następnie należałoby odłożyć KeyValuePair<string, string> jako właściwość ItemType przekaźnika.

<asp:Repeater id="rpCategories" runat="server" ItemType="System.Collections.Generic.KeyValuePair<string, string>"> 

Jest oczywistym problemem tutaj: Nie mogę korzystać < lub > w tekście itemtype!

Co by się z tym stało? Czy użycie generycznych jest jakoś możliwe dzięki nowemu modelowi wiązania danych?

+0

Próbował uciec im <i>? Jakieś błędy? – sisve

+0

Nie próbowałem, jeśli to działałoby podczas działania strony, ale VS zaznacza to jako błąd i Intellisense też nie działa. – magnattic

+0

Nie, też nie działa. Komunikat o błędzie jest oczywiście taki, że VS nie może rozpoznać typu. – magnattic

Odpowiedz

12

Działa to dla mnie:

kod za

protected void Page_Load(object sender, EventArgs e) 
     { 
      rpCategories.DataSource = new Dictionary<string, string>() 
      { 
       {"1", "item"},{"2", "item"},{"3", "item"}, 
      }; 
     rpCategories.DataBind(); 
     } 

Markup

<asp:Repeater ID="rpCategories" runat="server" ItemType="System.Collections.Generic.KeyValuePair`2[System.String,System.String]"> 
     <ItemTemplate> 
      <asp:Label ID="Label1" runat="server" Text='<%# Item.Key %>'></asp:Label> 
     </ItemTemplate> 
    </asp:Repeater> 
+0

Dzięki, to działa! – magnattic

+0

To rozwiązało problem, który miałem przez długi czas, dzięki. –

Powiązane problemy