0

我正在使用模板字段根据表格字段中的条件显示文本。

我有字段名称资格我用来存储整数值,例如 4 或 3,如果它是 4,则在 gridview 中显示“Post Graduate”,否则显示“Graduate”

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
    <asp:Label ID="Label1" runat="server" Text='<%# GetQual(int)(Eval("Qualification")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

public static string GetQual(int value)
    {
        if (value == 4)
        {
            return "Post Graduate";
        }
        else
        {
            return "Graduate";

        }
    }
4

2 回答 2

0

我会使用RowDataBound它,因为它更具可读性和可维护性:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRow row = ((DataRowView)e.Row.DataItem).Row;  // dependas on the DataSource, maybe you need to use the debugger to see what it is
        int qualification = row.Field<int>("Qualification");
        Label lblQuali = (Label) e.Row.FindControl("Label1");
        lblQuali.Text = qualification == 4 ? "Post Graduate" : "Graduate";
    }
}
于 2013-08-30T18:21:38.680 回答
0

更改您的GetQual函数以采用字符串而不是 int。然后,您可以解析GetQual函数内部的字符串并进行相应处理。将Eval()始终返回一个字符串。

于 2013-08-30T19:04:53.570 回答