13

このように定義されたDevListというフィールドを含むオブジェクトがあります

public List<string> DevList { get; set; }

また、開発者のリストを連結して1つの文字列として表示することになっているDisplayListOfDevelopersというメソッドを定義しました。

これが、aspxからメソッドを呼び出す方法です。

<asp:TemplateField HeaderText = "Developer(s)">
 <ItemTemplate>
   <asp:Label 
        ID="_lblDevList" 
        runat="server" 
        Text= '<%# DisplayListOfDevelopers(DevList) %>'>
   </asp:Label>
 </ItemTemplate>
</asp:TemplateField>

しかし、私はこのエラーを受け取ります:名前'DevList'は現在のコンテキストに存在しません

私は何かが足りないのですか?

編集

_gvStatus = ds;
_gvStatus.DataBind();

ここで、dsは、現時点ではDevListを含むオブジェクトのリストにすぎません。

助けてくれてありがとう

4

1 に答える 1

15

これがクラスの外観であると仮定します。

public class MyItem
{
    public List<string> DevList { get; set; }
}

そしてそれ

ds = List<MyItem>();

これを行う:

コードビハインド:

protected string DisplayListOfDevelopers(object _devList)
{
    //Cast your dev list into the correct object
}

マークアップ:

<asp:TemplateField HeaderText = "Developer(s)">
 <ItemTemplate>
   <asp:Label 
        ID="_lblDevList" 
        runat="server" 
        Text= '<%# DisplayListOfDevelopers(Eval("DevList")) %>'>
   </asp:Label>
 </ItemTemplate>
</asp:TemplateField>

コードビハインドの関数を保護またはパブリックにするようにしてください。

于 2012-10-05T21:22:49.860 に答える