1
アイテムのリストと真偽フラグを含むデータソースにバインドされたデータリストを含むフォームがあります。 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>
保存クリックすると、私がチェックされた項目を見たいです。
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