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?