我知道默认的.NET CheckBox控件不支持Value属性。这对我来说似乎很奇怪,因为输入控件支持将值作为html规范的一部分。

所以我的问题是这里是否有人知道asp.net的自定义用户控件,其行为类似于标准ASP .NET CheckBox和CheckBoxList?

有帮助吗?

解决方案 5

似乎值不在html中呈现,但仍存储在viewstate中。因此,当我访问CheckboxList.Items()中的ListItem对象时,我能够在服务器端获取值。

其他提示

也许我误解了你的问题,但是你知道你也可以使用典型的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控件的服务器控件,并为其添加一个名为value的属性,该属性可以从服务器端设置和检索。

如果您需要从客户端访问它,那么您将不得不想象服务器控件呈现的内容 - 可能是复选框和隐藏字段的组合,其中隐藏字段包含值。

如果您所做的只是提取服务器端复选框的值,我会想象复选框控件的简单扩展就足够了 - 添加一个可以从服务器设置和检索的额外属性一边......在公园散步。

不,他们不一样

我正在处理的功能要求产品升级列表显示为CheckBoxes列表。基于哪个复选框是<!> quot; checked <!> quot;我需要将它们添加到产品中。 CheckBoxList中的项是动态的,所以当我遍历检查项时,我需要某种唯一标识符。 <!>“; Checked <!>”; value只是一个布尔

MS在这里做了什么创建了他们的ASP控件,带有.net感觉。但是,由于它们应该与浏览器一起使用,因此它们呈现作为标准HTML控件。

所以在代码隐藏的cs / vb中,你看到.Checked(bool),而在client / javascript中你看到.value。

如果您想要的是唯一标识符,那么您需要查看ID或ClientID。或者,您可以向checkboxt(.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类生成复选框。

我对4.6之前的解决方案是添加数据属性。这会在您使用javascript找到的复选框和标签周围创建一个<span>控件。

        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