3

我的情况如下:

我有一个 GridView 并创建了一个类来代表其中的一行。我期待在单元格中显示类的属性和函数的结果。

为此,我正在使用这样的列:

<asp:TemplateField HeaderText="1">
    <ItemTemplate>
        <asp:Label runat="server" text='<%# MatchesCount((Int32)1) %>' />
    </ItemTemplate>
</asp:TemplateField>

该类具有以下功能:

public class MatchesGridViewRow
{
...
    public string MatchesCount(int day) {...}
}

我像这样绑定到 GridView:

GridView.DataSource = GetGridViewData(DateTime.Now.Month);
GridViewCalendar.DataBind();    

private List<MatchesGridViewRow> GetGridViewData(int month);

我得到的错误是:CS0103:当前上下文中不存在名称“MatchesCount”。

这不是调用方法的正确方法吗?如果不是我应该怎么称呼它?从现在开始感谢,期待答案。

4

2 回答 2

3

尝试将此方法更改为静态方法

public static  string MatchesCount(int day) {...}

然后打电话

'<%# MatchesGridViewRow.MatchesCount((Int32)1)%>'

请检查同样的问题

使用 gridView 中的 Eval("") 从 .ASPX 文件访问公共静态类文件

于 2013-03-08T17:43:49.380 回答
1

我检查下面的代码,它很有用:我希望

 <asp:TemplateField HeaderText="type" ItemStyle-Width="200">
                    <ItemTemplate>
                        <asp:Label ID="lbtype" runat="server" Text='<%# GetDescrptionHumanType(Convert.ToInt32(Eval("HumanType"))) %>' ></asp:Label>
                    </ItemTemplate>
                    <ItemStyle Width="200px"></ItemStyle>
                </asp:TemplateField>

   public  static string GetDescrptionHumanType(int val)
    {
       return  Utility.EnumEx.GetEnumDescription((HumanResourceType)val);

    }


   public static string GetEnumDescription(Enum value)
    {
        FieldInfo fi = value.GetType().GetField(value.ToString());

        DescriptionAttribute[] attributes =
            (DescriptionAttribute[])fi.GetCustomAttributes(
            typeof(DescriptionAttribute),
            false);

        if (attributes != null &&
            attributes.Length > 0)
            return attributes[0].Description;
        else
            return value.ToString();
    }
于 2013-03-09T18:22:09.213 回答