对于GradeView中,存在类似0不存在1表示存在,页面显示中文字的实现:
一、在表格中
<asp:TemplateField HeaderText="抄表标志">
<ItemTemplate><%# GetShowText(Eval("CurState"), "{0:未抄表,1:已抄表,NULL:空值}")%></ItemTemplate>
</asp:TemplateField>
注:{0:未抄表,1:已抄表,NULL:空值}中不要出现单引号,双引号等杂符。0则显示“未抄表”,1则显示“已抄表”,如果为空值""则显示“空值”
{0:未抄表,1:已抄表}则空值显示“”
二、在cs中,当然系统中要放在页面基类中了,这样每个页面都可以用到了
/// <summary>
/// <asp:TemplateField HeaderText="抄表标志">
/// <ItemTemplate><%# GetShowText(Eval("CurState"), "{0:未抄表,1:已抄表,NULL:空值}")%></ItemTemplate>
/// </asp:TemplateField>
/// {0:未抄表,1:已抄表}中如果是空则用NULL.注意不用些单引号把值引起来。
/// 如果CurState是"",则显示"空值"。
/// </summary>
/// <param name="idobj">列值""或1或0</param>
/// <param name="valList">列对应的显示值"{0:未抄表,1:已抄表,NULL:空值}"</param>
/// <returns></returns>
public string GetShowText(object idobj, string valList)
{
string reStr = "";
try
{
if (valList == "")
return "";
if (idobj == null || idobj.ToString() == "")
idobj = "NULL";
valList = valList.Trim().TrimStart('{').TrimEnd('}');
string head = idobj.ToString().Trim() + ":";
int indextemp = valList.IndexOf(head);
if (indextemp < 0)
return "";
valList = valList.Substring(indextemp + head.Length);
indextemp = valList.IndexOf(",");
if (indextemp > 0)
{
reStr = valList.Remove(indextemp);
}
else {
reStr = valList;
}
}
catch { }
return reStr;
}