asp.net
  • attributes
  • 2011-03-29 63 views 1 likes 
    1

    在ASP.NET中,您可以添加自定義的HTML標籤通過ASP.NET:值少的屬性添加到用戶控件

    myLabel.Attributes['my-custom-attribute'] = "someValue"; 
    // or Attributes.Add() 
    

    屬性添加到用戶控件...但如何添加屬性那沒有價值?例如(我不是說這就是我需要的),W3C規範只需要複選框中存在的checked屬性將其視爲已檢查(而不是checked='true'或其他)。

    <span ID="ctl-blah-blah-myLabel" my-custom-attribute>some text</span> 
    

    我在找到使用這樣的標記對於一些客戶端行爲我的網頁上的特定元素。我知道我可以在類中做同樣的事情,但是(1)類可能會操縱服務器端,(2)我不想污染我的類聲明只是爲了標記(對於某些人來說這可能很奇怪, 我知道)。

    回答

    2

    我不認爲你可以,做你所要求的不是一個格式良好的文檔。您所查看的W3C規範是舊的,就checked屬性而言。正確的形式,現在的一天,是把檢查=「檢查」。

    雖然許多瀏覽器可能會接受這一點,但我不會建議您這樣做。你試圖完成什麼?也許有更好的解決方案。

    +1

    HTML不是XML的派生物。 HTML早在XML出現之前就已存在。它們都是SGML的派生物。 http://en.wikipedia.org/wiki/HTML#Origins – smartcaveman 2011-03-29 14:11:08

    +0

    好吧,正如我所說的,我有這樣一個*標記HTML元素的好主意*,以便它們在客戶端代碼中表現不同(例如將它們標記爲「只讀」或「修改」等)。我知道我可以對類做同樣的事情,但只是想知道你是否可以將它作爲無價值屬性來實現。雖然XML規範的好點。 :D +1 – 2011-03-29 14:13:36

    +0

    @Richard爲什麼不只是使用類似於'my-custom-attribute =「true」'?你可以完成同樣的事情。 – CodingGorilla 2011-03-29 14:16:40

    0

    使用asp:Literal而不是asp:Label可以讓你做到這一點。

    +0

    噢,當然,我不只是在談論'Label's在這裏:D對不起,如果它出來的話。一般用戶控件/ WebControls。 :D – 2011-03-29 14:10:34

    +1

    Touche - 但更一般地說,有一些控件可以讓你在標記中擁有更多的權力:)例如,首選HtmlControls到WebControls。 UserControls是一個不同的野獸。由於它們只是其他標記的組合,因此「property ='value'」構造不會直接影響發送到瀏覽器的HTML,並且可以說「property ='true'」,然後呈現HTML在控制方面有所不同。 – joelt 2011-03-29 14:21:01

    1

    這不是您想要採取的方法。它導致格式錯誤的XHTML和畸形的ASP.NET。即使是現在的W3C規範也暗示過去的checked現在寫成checked="checked"有兩種方法是有意義的。

    1. 使用的屬性與一個布爾值,如my-custom-attribute="true"

    2. 使用類。你說你不想污染你的類,但是可能有一種方法來構建你的類定義,這不會是一個問題。對於初學者,您可以將這樣的標記放在一個單獨的.css文件中,並確保您使用適當的,富有表現力的命名約定。正確地做,css行爲和顯示之間的重疊可以是無縫的。

    +0

    我從CSS的角度思考了一個CSS的問題,但這些都是非常好的一些觀點。謝謝! – 2011-03-29 14:22:51

    +0

    如果你打算有這樣的多個布爾字段,我絕對建議使用CSS類 - 它們更容易操作客戶端(例如,使用jQuery) – smartcaveman 2011-03-29 14:28:37

    相關問題