<asp:TemplateColumn HeaderText="状态">
<ItemStyle Width="80px"></ItemStyle>
<ItemTemplate>
<asp:Label ID="lbl_state" Runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "is_internal") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>这样写只能得到数字 0, 1, -1, 而不是我想要的 "注册, 审核, 作废"
<ItemStyle Width="80px"></ItemStyle>
<ItemTemplate>
<asp:Label ID="lbl_state" Runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "is_internal") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>这样写只能得到数字 0, 1, -1, 而不是我想要的 "注册, 审核, 作废"
string changeit(string a){
if (a=="0") return "注册";
else if(a=="1") return "审核";
else return "作废";
}
绑定时
<%# change(DataBinder.Eval(Container.DataItem, "is_internal")) %>'
if (e.Items.cell[0].text == 0)
{
e.Items.cell[0].text == "注册"
}
试试!
比如:
switch (state)
{
case 0: return "注册";
case 1: return "审核";
case -1:
default: return "作废";
}
之类的?
<%# change(DataBinder.Eval(Container.DataItem, "is_internal")) %>
-----------------------
<%# change(DataBinder.Eval(Container.DataItem, "is_internal").ToString()) %>'
<html>
<head>
<script language="C#" runat="server"> void Page_Load(Object Src, EventArgs E) { if (!Page.IsPostBack) { ArrayList values = new ArrayList(); values.Add (0);
values.Add (1);
values.Add (2);
values.Add (3);
values.Add (4);
values.Add (5);
values.Add (6); DataList1.DataSource = values;
DataList1.DataBind();
}
} String EvenOrOdd(int number) {
if ((number % 2) == 0)
return "偶数";
else
return "奇数";
} </script></head>
<body> <h3><font face="宋体">到方法和表达式的数据绑定</font></h3> <form runat=server> <asp:DataList id="DataList1" runat="server"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
> <ItemTemplate>
数字值:<%# Container.DataItem %>
偶/奇:<%# EvenOrOdd((int) Container.DataItem) %>
</ItemTemplate> </asp:datalist> </form></body>
</html>
Sql语句就可以搞定,语句执行的时候就可以返回想要的值
for(int i = 0;DataGrid1.Item.Length;i ++)
{
Label lbl_state = DataGrid1.Item[i].FindControl("lbl_state");
switch (Convert.ToInt32(lbl_state.ToString())
{
case 0:
lbl_state.Text = "注册";
break ;
case 1:
lbl_state.Text = "审核";
break;
case -1:
lbl_state.Text = "作废";
break;
default: break; }
}
}
我是这样作的:
.cs 中给本类写一个方法:public string state_as_string(int state)
{ switch(state)
{ case 0: return "未审核";
case 1: return "已审核";
case -1:
default: return "作废";
}
}.aspx 页面文件里直接引用<asp:TemplateColumn>
<ItemTemplate>
<asp:Label ID="lbl_state" Runat="server"
Text='<%# state_as_string(Convert.ToInt32(DataBinder.Eval(Container.DataItem, "is_internal").ToString())) %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
这样就不必写 javascript了, 因为我对javascript不熟.