protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string tp = e.ros.Cells[n]; switch(tp) { case "1" : e.ros.Cells[n] = "A";break; case "2" : e.ros.Cells[n] = "B";break; case "3" : e.ros.Cells[n] = "C";break; } } }
以上有一点错误 将 e.ros.Cells[n] 改为 e.ros.Cells[n].Text
第一种: 用模板列,在RowDataBound事件里: 如:Lable labType = (Label)e.Rows.FindControl("labType"); swith(labType.Text) { case "1": labType.Text = "A"; break; case "2": ....... }第二种:通过sql select (case when type='1' then 'A' when type='2' then 'B' end) as type from table1
如果type值仅为值有1、2、3.则建议2楼的方法,如果是1、2、3.....的话可以采取如下: <%#ShowLitter(Int32.Convert(Eval("type").ToString()))%> public String ShowLitter(int num) { string letter = "abcdefghijklmnopqrstuvwxyz"; Dictionary<int, string> dic = new Dictionary<int, string>(); for (int ii = 1; ii <= 26; ii++) dic.Add(ii, letter.Substring(ii - 1, 1)); if (dic.ContainsKey(num)) return dic[num]; return ""; }
一般用2楼的方法。我的代码如下: /// <summary> /// 设置公告所属平台的显示。 /// </summary> /// <param name="typeid"></param> /// <returns></returns> public static string setTypeName(int typeid) { string typename = ""; switch (typeid) { case 1: typename = "询报价"; break; case 2: typename = "人才库"; break; case 3: typename = "专属服务"; break; case 4: typename = "监管中心"; break; case 5: typename = "咨询平台"; break; case 6: typename = "贸易平台"; break; } return typename; } 绑定的时候: <%#setTypeName(Convert.ToInt32(Eval("TypeId"))) %>
<#% Eavl("").ToString()=="1"?"A":(Eval("").ToString(()=="2:"B:"C")%> 或 <%#A(Eval("type").ToString())%> public String A(string s) { string str=""; switc(s) { case "1": str="A";break; case "2": str="B";break; case "3:str="c;break; default:break; } return str; }
<%#ShowLitter(Eval("type").ToString())%>
public String ShowLitter(string s)
{
if(s=="1") return "A";
....
}
case 1
return A
case 2
return B
case 3
return C这事VB代码,转换成C#同理,switch case语句
e.ros.Cells[n] = "";
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string tp = e.ros.Cells[n];
switch(tp)
{
case "1" : e.ros.Cells[n] = "A";break;
case "2" : e.ros.Cells[n] = "B";break;
case "3" : e.ros.Cells[n] = "C";break;
}
}
}
将 e.ros.Cells[n] 改为 e.ros.Cells[n].Text
用模板列,在RowDataBound事件里:
如:Lable labType = (Label)e.Rows.FindControl("labType");
swith(labType.Text)
{
case "1":
labType.Text = "A";
break;
case "2":
.......
}第二种:通过sql
select (case when type='1' then 'A' when type='2' then 'B' end) as type from table1
<%#ShowLitter(Int32.Convert(Eval("type").ToString()))%>
public String ShowLitter(int num)
{
string letter = "abcdefghijklmnopqrstuvwxyz";
Dictionary<int, string> dic = new Dictionary<int, string>();
for (int ii = 1; ii <= 26; ii++)
dic.Add(ii, letter.Substring(ii - 1, 1));
if (dic.ContainsKey(num)) return dic[num];
return "";
}
/// <summary>
/// 设置公告所属平台的显示。
/// </summary>
/// <param name="typeid"></param>
/// <returns></returns>
public static string setTypeName(int typeid)
{
string typename = "";
switch (typeid)
{
case 1:
typename = "询报价";
break;
case 2:
typename = "人才库";
break;
case 3:
typename = "专属服务";
break;
case 4:
typename = "监管中心";
break;
case 5:
typename = "咨询平台";
break;
case 6:
typename = "贸易平台";
break;
}
return typename;
}
绑定的时候:
<%#setTypeName(Convert.ToInt32(Eval("TypeId"))) %>
或
<%#A(Eval("type").ToString())%> public String A(string s)
{
string str="";
switc(s)
{
case "1": str="A";break;
case "2": str="B";break;
case "3:str="c;break;
default:break;
}
return str;
}