1
항목 목록과 true/false 플래그가 포함 된 데이터 소스에 바인딩 된 데이터 목록을 포함하는 양식이 있습니다. true의 경우, myCheck 확인란이 선택되어 :C# Checkbox.Checked 속성 변경 내용 반영 안 함
<form id="myForm" runat="server">
<asp:Button ID="save" runat="server" Text="Save" OnClick="save_Click" />
<br />
<asp:DataList runat="server" id="myList" onitemdatabound="myList_ItemDataBound">
<HeaderTemplate>
<th>Item Name</th>
<th id="thCheck" runat="server">Check?</th>
</HeaderTemplate>
<ItemTemplate>
<td id="tdName" runat="server"><%# Eval("Name") %></td>
<td runat="server"><asp:CheckBox id="myCheck" runat="server" Checked="false" /></td>
</ItemTemplate>
</asp:DataList>
저장 클릭, 나는 검사 한 어떤 항목을보고 싶어요. 나는 DataList에있는 항목을 반복하려면 다음을 사용하고 있습니다 :
protected void save_Click(Object sender, EventArgs e)
{
String Name;
Boolean omit;
foreach (DataListItem item in myList.Items)
{
CheckBox omitCheck = (CheckBox)item.FindControl("myCheck");
if (omitCheck != null)
{
if (omitCheck.Checked == true) // This line is my problem!!
{
// do stuff
}
break;
}
}
FindControl
그러나 값이 나는 상자의 일부를 체크 한 경우에도, 항상 false입니다, 확인 작업을 표시하고 체크 박스를 돌려줍니다. aspx 페이지에서 확인란의 값을 True로 설정하면 omitCheck.Checked
이 항상 true입니다. ViewState
이 비활성화되어 있지 않습니다.
나는이 점에 대해 확실하므로 분명한 대답이 있습니다.
myList_ItemDataBound 함수는 어떻게 생겼습니까? 나는 그것이 필요하다고 생각합니다! 포스트 백에 입력 된 값을 덮어 쓰지 않는 IsPostback – Evert
그건 고마워요. myList.DataBind() 메서드 주위에! IsPostBack 검사를 추가하면 해결됩니다. – RichardB
나는 그 대답으로, 그게 도움이되어 기쁘게 생각합니다. :) – Evert