repeater、gridview 在绑定时判断判断显示不同的行样式或文本
repeater、gridview 在绑定时判断判断显示不同的行样式或文本
发布时间:2016-12-29 来源:查字典编辑
摘要:一:repeater或DataList控件1.更改纯文本内容等如果数据库里学生信息表中的sex字段用0和1来表示男女但我们想repeat控件...

一:repeater或DataList控件

1.更改纯文本内容等 如果数据库里学生信息表中的sex字段用0和1来表示男女 但我们想repeat控件绑定后性别显示男或女而不是显示0或1

方法一:当然我们可以在SQL语句里判断并且转换

select (case sex when 0 then '男' else '女' end) AS sex from studentInfo

方法二:就是用到repeat 控件ItemDataBound()事件

前台

复制代码 代码如下:

<asp:Repearter ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound">

<ItemTemplate>

<tr>

<td>

<input type="checkbox">

</td>

<td>

<%#Eval("studentId") %>

</td>

<td>

<asp:Label Id="lblSex" runat="server" Text="">

</td>

</tr>

</ItemTemplate>

</asp:Repeater>

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)

{

DataRowView drv = (DataRowView)e.Item.DataItem;

if (drv["sex"].ToString()=="0")

{

((Label)e.Item.FindControl("lblSex")).Text = "男";

}

else ((Label)e.Item.FindControl("lblSex")).Text = "女";

}

2.根据要生成的行条件而显示不同的样式(CSS)

比如要显示男的那一行为一个样式,生成女的那一行又是一个样式 即 (如果是repeater控件的话)

((Label)e.Item.FindControl("lblSex")).CssClass= "style_male";

当然还可以设置提示语等((Label)e.Item.FindControl("lblSex")).ToolTip="我是男的"

如果是DataList控件的话还可以直接设置那一行的样式

复制代码 代码如下:

private void assets_ItenDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)

{

DataRowView drv=(DataRowView)e.Item.DataItem;

string m=(string)drv["ID"];

int i=_userMenuBll.AssetsCss(m);

switch(i)

{

case 0:e.Item.CssClass="nomal";break;

case 1:e.Item.CssClass="red";break;

case 2:e.Item.CssClass="purple";break;

case 3:e.Item.CssClass="yellow";break;

case 4:e.Item.CssClass="blue";break;

case 5:e.Item.CssClass="green";break;

}

}

如果是GridView控件的话则用 GridView1_RowDataBound

设置e.Row.CssClass 当然也能用e.Row.FindControl方法

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类