repeater gridview judgment judgment displays different line styles or text when binding

  • 2020-05-12 02:30:13
  • OfStack

1: repeater or DataList controls
1. Change the plain text content, etc. If the sex fields in the student information table in the database are 0 and 1 for male and female, but we want the repeat control to bind the gender to show male or female instead of 0 or 1
Method 1: of course we can judge and convert in SQL statements
select (case sex when 0 then 'male' else 'female' end) AS sex from studentInfo
Method 2: USES the repeat control ItemDataBound() event
The front desk
 
<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 = " male "; 
} 
else ((Label)e.Item.FindControl("lblSex")).Text = " female "; 
} 

2. Display different styles according to the line conditions to be generated (CSS)
For example, to display the male 1 behavior 1 style, and generate the female 1 line 1 style again (if it is an repeater control)
((Label)e.Item.FindControl("lblSex")).CssClass= "style_male";
ToolTip=" I'm male ".ToolTip=" I'm male ".ToolTip=" I'm male"
If you have an DataList control, you can also style that line directly
 
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; 
} 
} 

Use GridView1_RowDataBound if it is an GridView control
e.Row.CssClass can also be set to e.Row.FindControl

Related articles: