【问题标题】:How to find a div / panel in repeater and apply css?如何在中继器中找到一个 div / 面板并应用 css?
【发布时间】:2013-09-04 09:57:29
【问题描述】:

目标

如果 sql 表中的位列为真,则将 cssclass 添加到转发器内的 div。

当前代码

  <asp:Repeater ID="rpt1" RunAt="Server" OnItemDataBound="rpt1_ItemDataBound">
    <ItemTemplate>
      <asp:Panel ID="pnl1" RunAt="Server"></asp:Panel>
    </ItemTemplate>
  </asp:Repeater>

Protected Sub rpt1_ItemDataBound(Sender As Object, e As RepeaterItemEventArgs)
    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
        If e.Item.DataItem("MyBitCol") = True Then
            Dim div1 = CType(rpt1.FindControl("pnl1"), Panel)
            div1.Attributes.Add("class", "MyClass")
        End If
    End If
End Sub

转发器在页面加载时正确绑定,并从包含“MyBitCol”列的 sp 填充

问题

如何从后面的代码中查找和定位转发器内的 div?

如何检索绑定到转发器的 mssql 列值? (列绑定到repeater但在aspx页面上没有调用。需要在后面的代码中调用)。

【问题讨论】:

    标签: asp.net css sql-server vb.net repeater


    【解决方案1】:

    要查找面板:

    {
        Dim pnlSubCategories As Panel = DirectCast(e.Item.FindControl("pnl1"),Panel)
        pnlSubCategories.cssClass="yourclass"
    }
    

    【讨论】:

    • 那应该是:e.Item.FindControl("pnl1") 如果 DreamTeK 实际上是在请求 Panel-Control...
    • @sl3dg3,来自他的问题:“将 cssclass 添加到中继器内的 div”
    • 感谢您的输入标记,但是:无法将“System.Web.UI.WebControls.Panel”类型的对象转换为“System.Web.UI.HtmlControls.HtmlGenericControl”。
    • 是的,它会 bcoz 面板是服务器端而不是像 div..那么你的要求是什么..你想用 id pnl1 将 cssclass 应用于那个面板
    • Dim pnlSubCategories As Panel = DirectCast(e.Item.FindControl("pnl1"), Panel)....pnlSubCategories.cssClass="yourclass"...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 2014-08-13
    相关资源
    最近更新 更多