문제

기본 .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"라는 속성이 필요하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top