Pole wyboru Asp.net i atrybut danych html

W asp.net, jeśli używasz atrybutu niestandardowego, zwykle jest on renderowany jak jest.

Biorąc pod uwagę ten znacznik (Uwaga: atrybuty takie jakid, name ifor zostały usunięte we wszystkich przykładach, ponieważ ich wygenerowany identyfikator / nazwy są gadatliwe):

<asp:TextBox runat="server" data-foo="bar" />

Jest renderowany w asp.net jako:

<input type="text" data-foo="bar" />

To znaczy, utrzymuje asp.netdata-foo nietknięty.

Pole wyboru jest zwykle wyświetlane w następujący sposób:

<asp:CheckBox runat="server" Text="Normal" />

Renderuje jako:

<input type="checkbox" />
<label>Normal</label>

Ale jeśli dodasz atrybut niestandardowy do pola wyboru:

<asp:CheckBox runat="server" Text="Custom attribute" data-foo="bar"  />

To sprawia, że:

<span data-foo="bar">
    <input type="checkbox" />
    <label>Custom attribute</label>
</span>

Jak widać, rozpiętość została wyświetlona w celu przechowywania atrybutu. Dzieje się tak również, jeśli dodasz atrybut w kodzie za. Nie dzieje się tak w przypadku innych HtmlControl, AFAIK.

Czy ktoś wie, dlaczego ten zakres jest renderowany w celu przechowywania atrybutu?

Czy mimo to renderować atrybut w tagu wejściowym?

questionAnswers(4)

yourAnswerToTheQuestion