문제

템플릿 필드에 ASP 확인란이있는 그리드 뷰가 있습니다. 템플릿 필드는 다음과 같이 정의됩니다.

<asp:TemplateField HeaderText="HeaderName">
    <ItemTemplate>
        <asp:CheckBox ID="checkBoxId" runat="server" OnCheckedChanged="MyCheckChangedMethod" AutoPostBack="true"/>
    </ItemTemplate>
</asp:TemplateField>

MyCheckChangedMethod 내부의 중단 점으로 웹 프로젝트를 실행하고 확인란을 클릭하면 아무 일도 일어나지 않습니다. 중단 점이 맞지 않습니다. 내 Visual Studio Debugger가 실행 중입니다.

또한, 내 페이지 방어에 AutoeventWireUp = true가 있으므로 수동으로 이벤트를 연결할 필요가 없습니다. 나는 전에 이런 식으로하는 데 문제가 없었습니다. 클릭 이벤트와 동일한 방식으로 같은 페이지를 설정하는 버튼이 있으며 중단 점이 잘 맞습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

체크 박스 컨트롤의 Postback 이벤트는 컨트롤의 ID를 관리하는 그리드 뷰 내에 있기 때문에 올바르게 발사되지 않습니다.

데이터를 반영하기 위해 확인란이 필요한 경우 사용할 수 있습니다. Checkboxfield 반대하고 그런 식으로 묶습니다.

필요하면 행에 대한 작업을 수행하면 버튼 필드 객체를 사용하여 명령 이름 속성과 RowCommand 이벤트.

방법이 있습니다 GridView 서버 측에서 확인란에 액세스하십시오.

다른 팁

추가해야합니다 AutoPostback = True 안에 asp:CheckBox 꼬리표.

문제는 때 발생합니다 DataBind 제어 이벤트가 발사되기 전에 호출됩니다. 전화하면 DataBind 안에 Page_Load 그것을 넣으십시오if (!isPostBack) {} 그리고 전화 DataBind 이벤트 핸들러 자체.

노력하다:

<asp:CheckBox  ID="checkBoxId" runat="server" AutoPostBack=true OnCheckedChanged="MyCheckChangedMethod"/>

ASPX 페이지에 CodeFile = "Your_file.aspx.cs"가 상단에 있는지 확인하십시오.

또한 귀하의 기능 MyCheckChangedMethod가 다음과 같이 정의되어 있음을 확인하십시오.

함수는 객체 발신자, EventArgs e가 있어야합니다.

public void MyCheckChangedMethod(object sender, EventArgs e)
{
  bool b = false;//your data here
}

또한 web.config에 Debug가 True로 설정되어 있는지 확인하십시오 (이미 완료된 생각).

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