2011-07-08 28 views
2

只是想知道是否有方法从代码隐藏中更改repeateritems的样式/ css。基本上我有一个打印友好版本的页面,如果显示器是打印机友好的,我想为转发器中的每个项目添加底部边距。这可能吗?在代码隐藏中改变中继器项目的风格?

回答

0

是的,你可以。你在重复什么?一个<TR>?一个<DIV>

只需将CssClass从代码后面更改为...例如:YourRepeatedItem.CssClass =“PrinterFriendly”。

For each ReaptedItem as repeaterItem in YourRepeater.items 
    dim ItemToBeModified as htmlcontrol = RepeatedItem.findControl("ControlID") 
    ItemToBeModified.CssClass = "PrinterFriendly" 
Next 
0

可以从代码隐藏中更改任何控件的样式。基本上,类(所有asp.net UI控件的父类)具有属性和许多其他暴露风格行为的属性。通过改变它们你可以改变外观。

2

是的,有可能在Repeater的ItemDataBound事件中做。

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { 
     ((HtmlControl)e.Item.FindControl("SomeControl")).Attributes.Add("class", "cssStyle"); 
    } 
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>   
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>