我正在使用模板字段根据表格字段中的条件显示文本。
我有字段名称Qualification我用来存储整数值,如4或3 如果是4则在gridview中显示“研究生”或“研究生”
<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";
}
}
答案 0 :(得分: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";
}
}
答案 1 :(得分:0)
将GetQual
函数更改为字符串而不是int。然后,您可以解析GetQual
函数内的字符串并进行相应处理。 Eval()
将始终返回一个字符串。