NET controlo CheckBox que suporta Valor propriedade
-
03-07-2019 - |
Pergunta
Estou ciente de que o padrão de controle .NET CheckBox não suporta a propriedade Value. Isso parece estranho para mim, porque o controle de entrada faz valor de suporte como parte da especificação HTML.
Então, minha pergunta é se ou não alguém aqui sabe de um controle de usuário personalizada para fora lá para asp.net que funciona semelhante ao padrão ASP .NET CheckBox e CheckBoxList?
Solução 5
Parece que os valores não são processados ??no html, mas ainda são armazenados no viewstate. Então, eu era capaz de puxar o valor no lado do servidor quando eu acessado o objeto ListItem nas CheckboxList.Items ()
Outras dicas
Talvez eu esteja mal-entendido sua pergunta, mas você está ciente de que você pode usar os controles HTML típicas também?
Por exemplo, criar uma página ASPX e adicione o seguinte fonte:
<div>
<input type="checkbox" runat="server" id="chkBox" value="test" />
<asp:Label ID="lblCheckboxValue" runat="server" />
</div>
<asp:Button runat="server" OnClick="Button_Click" />
Então, em seu código por trás adicione o seguinte código:
protected void Button_Click(object sender, EventArgs e)
{
if (chkBox.Checked)
lblCheckboxValue.Text = chkBox.Value;
else
lblCheckboxValue.Text = "";
}
Você pode definir a propriedade de seleção html valor da caixa para o que quiser.
Se você só precisa de acesso a ele no lado do servidor, você pode facilmente criar um controle de servidor que herda o controle de caixa de seleção e adicionar uma propriedade a que chamou de valor que pode ser definido e recuperado do lado do servidor.
Se você precisar acessá-lo do lado do cliente no entanto, você vai ter que começar imaginitive com o que o controle de servidor torna -. Provável que uma combinação de uma caixa de seleção e campo oculto pelo qual o campo oculto contém o valor
Se tudo que você está fazendo é extrair o valor das caixas marcadas no lado do servidor, eu iria imaginar que uma simples extensão do controle caixa seria suficiente embora - adicionar uma propriedade extra que pode ser definido e recuperado do servidor side ... passeio no parque.
Não, eles não são os mesmos
O recurso que eu estou trabalhando requer uma lista de atualizações de produto a ser mostrado como uma lista de caixas de seleção. Com base no qual caixas são "marcada" i terá de adicioná-los ao produto. Os itens no CheckBoxList são dinâmicas Então, quando eu iterar sobre os itens verificados Eu preciso de algum tipo de identificador exclusivo. O valor "verificado" é apenas um booleano
O MS tem feito aqui é criado seus controles ASP com uma sensação .net para eles. No entanto, uma vez que é suposto para trabalhar com navegadores, eles render como controles HTML padrão.
Assim, no code-behind cs / vb, você vê .checked (bool), enquanto no cliente / JavaScript você vê .value.
Se o que você quer é um identificador único, então você precisa estar olhando para ID ou ClientID. Alternativamente, você pode adicionar um atributo ao checkboxt (.Attributes.Add ()) e usar isso.
Você pode criar seu próprio controle personalizado, substituindo CheckBox. Aqui está um exemplo que acabou de criar para adicionar um lado do servidor e cliente disponíveis propriedade 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);
}
}
Esta é uma questão de idade, mas as coisas mudaram. Primeiro, em asp.net 4.6, o atributo valor será definido na caixa de seleção. Poucos desta respostas são relevantes para CheckBoxList, que usa a classe ListItem para gerar caixas de seleção.
A minha solução para pré-4.6 é adicionar um atributo de dados. Isso cria um controle <span>
em torno da caixa e rótulo que você pode encontrar com javascript.
foreach( ListItem item in selCheckList.Items)
{
item.Attributes["data-role-id"] = item.Value;
}
não é "verificado" o mesmo que "valor"?
http://www.w3schools.com/aspnet/control_checkbox.asp
Dê uma olhada lá dentro. Você realmente não precisa de uma propriedade especificamente chamado "Valor", porque "verificado" vai lhe dar a mesma informação.