2010-12-11 33 views
3

asp.netが.aspxソースページ(コードビハインドではない)でHTMLインラインで動的に生成できるかどうかを知りたいと思った。私は次のような単純な.aspxページを作成し、テストするためにASP.NETで動的にHTMLを生成

...私のasp.netコードビハインドで

私は、次のしている:

:私は、対応するソース・ページで

protected List<string> myList = null; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (myList == null) 
      myList = new List<string>(); 

     myList.Add("One String"); 
     myList.Add("Two String"); 
     myList.Add("Three String"); 
     myList.Add("Four String"); 

     this.Repeater1.DataSource = myList; 
     this.Repeater1.DataBind(); 
    } 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <ol> 
     <asp:Repeater ID="Repeater1" runat="server"> 
      <ItemTemplate> 
       <li> 
        <%# DataBinder.GetDataItem(myList) %> 
       </li> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ol> 
</body> 
</html> 

結果の.aspxページは次のとおりです。

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title> 

</title></head> 
<body> 
    <ol> 

       <li></li> 

       <li></li> 

       <li></li> 

       <li></li> 

    </ol> 
</body> 
</html> 

実際、Repeaterコントロールは4つのリスト項目を作成したことに注意してください。しかし、myListリストの内容(1つの文字列、2つの文字列など)は乗っていませんでした。

myListリストを評価し、その値をリストアイテムタグ内で取得するには、何が必要ですか?ちなみに、私はRepeaterコントロールを具体的に使用する方法には関心がありません。したがって、この問題のソリューションにはRepeaterコントロールが含まれていない場合、それでいいです。

注:「myList」ジェネリックリストをasp:BulletedListにバインドして同じ結果を得ることができます。私はソースページのHTMLインラインで動的に作成することにもっと興味があります。

<asp:Repeater ID="Repeater1" runat="server"> 
    <ItemTemplate> 
     <li> 
      <%# Container.DataItem %> 
     </li> 
    </ItemTemplate> 
</asp:Repeater> 

あなたがプロパティを持つオブジェクトのリストでソースをバインドする必要がある場合は、使用しよう::このコード

答えて

6

使用

<asp:Repeater ID="Repeater1" runat="server"> 
    <ItemTemplate> 
     <li> 
      <%# Eval("PropertyName") %> 
      or 
      <%# Eval("PropertyName","DataFormat") %> 
     </li> 
    </ItemTemplate> 
</asp:Repeater> 

は、それはあなたの質問のお手伝いを願っています。コーディングで幸運!

お礼、 ディマ。

+0

ありがとう、Dima。ちょうど私が探していたもの。 – Jed

+0

ようこそ) –

関連する問題