.NET Checkbox 컨트롤 값을 지원하는 값 속성을 지원합니다
-
03-07-2019 - |
문제
기본 .NET Checkbox 컨트롤이 값 속성을 지원하지 않는다는 것을 알고 있습니다. 입력 컨트롤이 HTML 사양의 일부로 값을 지원하기 때문에 이것은 나에게 이상하게 보입니다.
따라서 내 질문은 표준 ASP .NET Checkbox 및 CheckBoxList와 유사한 ASP.NET의 사용자 정의 사용자 컨트롤을 아는 사람이 있습니까?
해결책 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 확인란 값 속성을 원하는대로 설정할 수 있습니다.
서버 측에서만 액세스 해야하는 경우 확인란 컨트롤을 상속하는 서버 컨트롤을 쉽게 생성하고 서버 측에서 설정하고 검색 할 수있는 값이 호출되는 속성을 추가 할 수 있습니다.
그러나 클라이언트 측에서 액세스 해야하는 경우 서버 컨트롤 렌더링에 대해 상상력이 있어야합니다. 아마도 숨겨진 필드에 값이 포함 된 확인란과 숨겨진 필드의 조합 일 가능성이 높습니다.
당신이하고있는 모든 것이 서버 측에서 점검 된 상자의 값을 추출하는 것만이라면, 체크 박스 컨트롤의 간단한 확장으로 충분하다고 생각할 것입니다. 서버 측에서 설정하고 검색 할 수있는 추가 속성을 추가합니다. . 공원에서 걸어.
아니 그들은 동일하지 않습니다
내가 작업중인 기능에는 제품 업그레이드 목록이 있어야 체크 박스 목록으로 표시됩니다. 어떤 확인란이 "확인"을 기반으로 제품에 추가해야합니다. CheckboxList의 항목은 동적이므로 확인 된 항목을 반복 할 때 일종의 고유 식별자가 필요합니다. "확인 된"값은 부울 일뿐입니다
여기서 MS가 한 일은 .NET 느낌으로 ASP 컨트롤을 만들어냅니다. 그러나 브라우저와 함께 작동하기 때문에 세우다 표준 HTML 제어로.
따라서 Code-Behind CS/VB에는 .Checked (BOOL)가 표시되고 클라이언트/JavaScript에는 .Value가 표시됩니다.
원하는 것이 고유 식별자라면 ID 또는 ClientID를보고 있어야합니다. 또는 checkboxt (.attributes.add ())에 속성을 추가하여 사용할 수 있습니다.
확인란을 재정의하여 고유 한 사용자 정의 컨트롤을 만들 수 있습니다. 다음은 사용 가능한 값 속성 서버 및 클라이언트 측을 추가하기 위해 방금 만든 예입니다.
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에서 값 속성이 확인란에 설정됩니다. 이 답변 중 일부는 ListItem 클래스를 사용하여 CheckBox를 생성하는 CheckBoxList와 관련이 없습니다.
4.6 이전의 솔루션은 데이터 속성을 추가하는 것입니다. 이것은 a를 만듭니다 <span>
JavaScript에서 찾을 수있는 확인란 및 레이블 주변을 제어하십시오.
foreach( ListItem item in selCheckList.Items)
{
item.Attributes["data-role-id"] = item.Value;
}
"value"와 동일하지 않은 "Checked"가 아닌가?
http://www.w3schools.com/aspnet/control_checkbox.asp
거기를보세요. "확인 된"이 동일한 정보를 제공하기 때문에 특별히 "value"라는 속성이 필요하지 않습니다.