Элемент управления .NET CheckBox, поддерживающий свойство Value

StackOverflow https://stackoverflow.com/questions/418947

Вопрос

Мне известно, что стандартный элемент управления .NET CheckBox не поддерживает свойство Value. Это кажется мне странным, потому что элемент управления вводом поддерживает значение как часть спецификации html.

Итак, мой вопрос заключается в том, знает ли кто-нибудь здесь о пользовательском элементе управления для asp.net, который действует подобно стандартным ASP .NET CheckBox и CheckBoxList?

Это было полезно?

Решение 5

Кажется, что значения не отображаются в html, но все еще хранятся в viewstate. Таким образом, я смог получить значение на стороне сервера, когда я получил доступ к объекту ListItem в CheckboxList.Items ()

Другие советы

Возможно, я неправильно понимаю ваш вопрос, но знаете ли вы, что вы также можете использовать стандартные элементы управления HTML?

Например, создайте страницу ASPX и добавьте следующий источник:

    <div>
            <input type="checkbox" runat="server" id="chkBox" value="test" />
            <asp:Label ID="lblCheckboxValue" runat="server" />
    </div>

    <asp:Button runat="server" OnClick="Button_Click" />

Затем в своем коде добавьте следующий код:

protected void Button_Click(object sender, EventArgs e)
        {
            if (chkBox.Checked)
                lblCheckboxValue.Text = chkBox.Value;
            else
                lblCheckboxValue.Text = "";

        }

Вы можете установить свойство значения флажка html на любое значение.

Если вам нужен доступ к нему только на стороне сервера, вы можете легко создать серверный элемент управления, который наследует элемент управления Checkbox, и добавить к нему свойство, называемое значением, которое можно устанавливать и получать со стороны сервера.

Однако, если вам нужен доступ к нему со стороны клиента, вам нужно подумать о том, что отображает серверный элемент управления - скорее всего, это сочетание флажка и скрытого поля, в котором скрытое поле содержит значение.

Если все, что вы делаете, - это извлекаете значение отмеченных флажков на стороне сервера, я думаю, что будет достаточно простого расширения элемента управления флажком - добавить дополнительное свойство, которое можно установить и получить с сервера. сторона ... гулять в парке.

Нет, они не одинаковы

Функция, над которой я работаю, требует, чтобы список обновлений продукта отображался в виде списка флажков. В зависимости от того, какие флажки установлены & Quot; флажок & Quot; мне нужно будет добавить их в продукт. Элементы в CheckBoxList являются динамическими, поэтому, когда я перебираю проверенные элементы, мне нужен какой-то уникальный идентификатор. & Quot; проверено & Quot; значение только логическое

MS сделала здесь свои элементы управления ASP с чувством .net к ним. Однако, поскольку они должны работать с браузерами, они визуализируют как стандартные элементы управления HTML.

Итак, в выделенном фрагменте кода cs / vb вы видите .Checked (bool), а в клиенте / javascript вы видите .value.

Если вам нужен уникальный идентификатор, вам нужно посмотреть на ID или ClientID. Кроме того, вы можете добавить атрибут в флажок (.Attributes.Add ()) и использовать его.

Вы можете создать свой собственный элемент управления, переопределив CheckBox. Вот пример, который я только что создал, чтобы добавить свойство Value, доступное на серверной и клиентской стороне:

public class ValueCheckBox : CheckBox
{
    public string Value
    {
        get;
        set;
    }

    protected override void Render(System.Web.UI.HtmlTextWriter writer)
    {
        writer.AddAttribute("value", this.Value);
        base.Render(writer);
    }
}

Это старый вопрос, но все изменилось. Во-первых, в asp.net 4.6 атрибут value будет установлен на флажок. Немногие из этих ответов имеют отношение к CheckBoxList, который использует класс ListItem для создания флажков.

Мое решение для pre-4.6 - добавить атрибут данных. Это создает <span> элемент управления вокруг флажка и метки, который вы можете найти с помощью javascript.

        foreach( ListItem item in selCheckList.Items)
        {
            item.Attributes["data-role-id"] = item.Value;
        }

Не " проверено " так же, как " значение "?

http://www.w3schools.com/aspnet/control_checkbox.asp

Посмотри туда. На самом деле вам не нужно свойство с именем & Quot; Value & Quot ;, потому что & Quot; Checked & Quot; даст вам ту же информацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top