Вопрос по asp.net – Флажок Asp.net и атрибут данных html

18

В asp.net, если вы используете пользовательский атрибут, обычно он отображается как есть.

Учитывая эту разметку (note: такие атрибуты, какid, name а такжеfor были удалены во всех примерах, поскольку их сгенерированные идентификаторы / имена являются многословными):

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

Отображается в asp.net как:

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

То есть asp.net хранитdata-foo нетронутым.

Флажок обычно отображается так:

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

Представляет как:

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

Но если вы добавите пользовательский атрибут в флажок:

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

Это выглядит как:

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

Как вы можете видеть, интервал рендеринга для хранения атрибута. Это также происходит, если вы добавляете атрибут в коде. Этого не происходит с любым другим HtmlControl, AFAIK.

Кто-нибудь знает, почему этот диапазон отображается для хранения атрибута?

Есть ли способ визуализировать атрибут во входном теге?

Error: User Rate Limit Exceeded Nick Rolando

Ваш Ответ

4   ответа
21

Error: User Rate Limit ExceededinputError: User Rate Limit ExceededCheckBox in code-behidError: User Rate Limit Exceeded

myCheckBox.InputAttributes.Add(...)

Error: User Rate Limit Exceeded

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkbox.inputattributes.aspx http://forums.asp.net/p/541142/541562.aspx http://msdn.microsoft.com/en-us/library/system.web.ui.attributecollection.add.aspx

Update

Error: User Rate Limit ExceededCheckBoxError: User Rate Limit ExceededinputError: User Rate Limit ExceededspanError: User Rate Limit ExceededdivError: User Rate Limit Exceededinline elementError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

http://en.wikipedia.org/wiki/Span_and_div#Differences_and_default_behavior http://learnwebdesignonline.com/span-div
Error: User Rate Limit Exceeded Ortiga
0

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

OnCheckedChangedsender

protected void chk1_CheckedChanged(object sender, EventArgs e)
{
    CheckBox myControl = (CheckBox)sender;
    string value = myControl.Attributes["data-foo"].ToString();

}

4

CheckBox

runat="server"

<input id="myInput" runat="server" type="checkbox" data-foo="bar"/>
<label>Custom attribute</label>

data-foo

$(function(){
    $('span[data-foo]').each(function(){
        var $span = $(this);
        var value = $span.data('foo');
        $span.find('input').data('foo',value);        
    });
})
1

<asp:Literal ID="myLiteral" runat="server"/>

myLiteral.Text = string.Format("<input type=\"checkbox\" data-foo=\"{0}\" /><label>Normal</label>", value)

Похожие вопросы