只是想知道是否有办法从代码隐藏中更改repeateritems的样式/ css。基本上我有一个打印机友好版本的页面,如果显示器是打印机友好的,我想为转发器中的每个项目添加一个底部边距。这可能吗?
答案 0 :(得分:2)
是的,可以在Repeater的ItemDataBound事件中进行。
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) {
((HtmlControl)e.Item.FindControl("SomeControl")).Attributes.Add("class", "cssStyle");
}
答案 1 :(得分:2)
有几个选项可以应用样式,请看一下Repeater的ItemDataBound事件。
代码隐藏:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim tbl As New DataTable
tbl.Columns.Add(New DataColumn())
For i As Int32 = 1 To 10
tbl.Rows.Add(tbl.NewRow)
tbl.Rows(tbl.Rows.Count - 1)(0) = "Item " & i
Next
Me.Repeater1.DataSource = tbl
Me.Repeater1.DataBind()
End If
End Sub
Private Sub Repeater1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater1.ItemDataBound
Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem
Dim dr = DirectCast(e.Item.DataItem, DataRowView)
Dim Label1 = DirectCast(e.Item.FindControl("Label1"), Label)
Label1.Text = dr(0)
'use CssClass property'
Label1.CssClass = "MyClass"
'use Style property'
Label1.Style.Add("color", "red")
'use direct properties, for example'
Label1.BackColor = Drawing.Color.Yellow
End Select
End Sub
ASPX:
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate><table></HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label ID="Label1" runat="server" ></asp:Label>
</td>
</tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
答案 2 :(得分:0)
是的,你可以。你在重复什么?一个<TR>
?一个<DIV>
?
只需从后面的代码更改Css类...例如:YourRepeatedItem.CssClass =“Printer Friendly”。
答案 3 :(得分:0)
可以从代码隐藏中更改任何控件的样式。基本上, WebControl 类(所有asp.net UI控件的父级)具有 CssClass 属性以及暴露样式行为的许多其他属性。通过更改它们,您可以更改外观。
答案 4 :(得分:0)
您可能还想使用样式表中提供的“媒体”属性:http://www.javascriptkit.com/dhtmltutors/cssmedia.shtml
<link rel="stylesheet" type="text/css" media="print" href="print.css">
OR
<style type="text/css">
@media print {
.XXX{margin-bottom:5px;}
}
</style>
<asp:Label ID="Label1" CssClass="XXX" runat="server"></asp:Label>