当前位置: 移动技术网 > IT编程>开发语言>.net > repeater、gridview 在绑定时判断判断显示不同的行样式或文本

repeater、gridview 在绑定时判断判断显示不同的行样式或文本

2017年12月12日  | 移动技术网IT编程  | 我要评论

下课后的契约,阿古斯的使徒,北邮iptv

一: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 style="text-align: center">
<%#eval("studentid") %>
</td>
<td style="text-align: center">
<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方法

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网