リストビューがあります。リストビューID:myListView。 HiddenField ID:hfIDのlistview(itemTemplate内)にhiddenFieldがあります。 チェックボックスID(ItemTemplateにで)リストビューのチェックボックスがあります:checkBoxSec はまた、リストビューのうちのボタンがあります。ボタンのIDは:ボタンでリストビューの選択されたチェックボックスを取得
私の目的をbtnConfirmSelected:私はこのASP]ボタンをクリックすると、選択したチェックボックスを取得したいと思います。
ここで、iは最初のASPXページを共有し、次いでaspx.cs AM(側後ろコード)
1 ASPX側
<asp:ListView ID="myListView" runat="server" OnItemCommand="listView_OnItemCommand"
OnItemDataBound="listView_ItemDataBound">
<LayoutTemplate>
<table id="listViewRecordsTable" cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th style="text-align: left;">
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="false" onchange="CheckAll(this);" />
</th>
<th style="text-align: left;">
süreç no
</th>
</tr>
</thead>
<tbody>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr class="odd gradeX" id="<%# Eval("ID").ToString() == "BOS" ? "" : Eval("ID")%>">
<td>
<asp:CheckBox ID="checkBoxSec" runat="server" CssClass="checkBoxExample" />
</td>
<td>
<%# Eval("surecID").ToString() == "BOS" ? "" : Eval("surecID")%>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
2 aspx.cs側の後ろに(コード側)
protected void btnConfirmSelected_Click(object sender, EventArgs e)
{
try
{
foreach (var item in myListView.Items)
{
if (item.ItemType == ListViewItemType.DataItem)
{
HiddenField hfID = item.FindControl("hfID") as HiddenField;
CheckBox checkBoxSec = item.FindControl("checkBoxSec") as CheckBox;
if (checkBoxSec.Checked)
{
//some tasks in here. i put debug point to here. and then i click button after i select some checkbox. but debug never comes here.
}
}
}
}
catch (Exception ex)
{
labelResult.Text = ex.ToString();
}
}
誰でも教えてください。間違いや欠けている箇所はどこですか? 私はここにデバッグポイントを置く:
if (checkBoxSec.Checked)
{
//some tasks in here. i put debug point to here. and then i click button after i select some checkbox. but debug never comes here.
}
が、ここで来ることはありません。私はいくつかのチェックボックスを選択した後、私はボタンをクリックしています。どうもありがとう。
あなたのコードが動作し、私はそれをテストしました。あなたは 'if(checkBoxSec.Checked)'の中にいないボタンをクリックするだけでブレークポイントを設定し、何が起こっているのかを追跡します。 –
が確認できます。それはうまく動作します。 'if(!IsPostBack){}'の中にDataBindingをラップしましたか? – VDWWD
このシナリオを試してください。リストビューでいくつかのチェックボックスを選択し、ボタンをクリックします。そして、2つのデバッグポイントを置く。ボタンをクリックして2番目のデバッグポイントが決して来ないことを見るボタンをクリックすると 'if(checkBoxSec.Checked)'が表示されます。この範囲になければなりません。既にいくつかのチェックボックスが選択されているためです。これが問題です。最初のデバッグポイントは途中で問題ありません。ありがとう!! – selcuksel