repeater、gridview 在绑定时判断判断显示不同的行样式或文本
一: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方法
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号