代码之家  ›  专栏  ›  技术社区  ›  Chris Barr

更新面板更新上的cssclass重复项

  •  0
  • Chris Barr  · 技术社区  · 15 年前

    我的ASP.NET WebForms项目中有一个简单的用户控件,它继承了LinkButton。它有一个属性来更改大小,只需向控件添加一些预定义的CSS类。

    Protected Overrides Sub CreateChildControls()
        Dim SizeClass As String = String.Empty
        If Size = SizeEnum.Large Then
            SizeClass = "large"
        Else
            SizeClass = "small"
        End If
    
        Me.CssClass += " button " + SizeClass
    
        Me.Controls.Add(New LiteralControl(String.Format("<span class=""l"">{0}</span><span class=""r""></span><span class=""clear""></span>", Me.Text)))
        MyBase.CreateChildControls()
    End Sub
    

    很简单,对吧?所以当它呈现类属性时 class="button small" .

    当此控件与其他内容一起放置在更新面板中时,当更新面板更新这些控件中的每一个的Class属性时, class=" button small button small button small button small button small button small button small button small button small button small button small button small button small"

    这有点荒谬。你知道为什么会这样吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Chris    15 年前

    尝试改变

    Me.CssClass += " button " + SizeClass
    

    Me.CssClass = " button " + SizeClass
    

    每次控件呈现时,CSSClass都存储在控件的视图状态中。所以当它呈现时,它会不断附加。

    推荐文章