2011-07-08 8 views
2

コードビハインドからリピータアイテムのスタイル/ CSSを変更する方法があるかどうかは不思議です。基本的に私はページのプリンタフレンドリなバージョンを持って、ディスプレイがプリンタフレンドリーな場合、私はリピータの各項目に下の余白を追加したい。これは可能ですか?コードビハインドのリピータアイテムのスタイルを変更しますか?

答えて

0

はいできます。あなたは何を繰り返していますか? <TR>? a <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

コードビハインドから任意のコントロールのスタイルを変更することができます。基本的にWebControlクラス(すべてのasp.net UIコントロールの親)には、CssClassプロパティとスタイルビヘイビアを公開する多くのプロパティがあります。それらを変更することにより、外観を変更することができます。

2

はい、RepeaterのItemDataBoundイベント内で実行できます。

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { 
     ((HtmlControl)e.Item.FindControl("SomeControl")).Attributes.Add("class", "cssStyle"); 
    } 
2

スタイルを適用するには、いくつかのオプションがあなたRepeaterのItemDataBoundイベントを見てHAEあります。

分離コード:

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> 
関連する問題