0

追加して、リピーターで HtmlInputCheckBox を使用しています

<input id="CheckBox1" type="checkbox" runat="server" value='<%# Eval ("userid") %>' />

repeater->ItemTemplate->table->tr->td に、サーバー側で使用しています

protected void Button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < UserRepeater.Items.Count; i++)
        {
            var chkBox = UserRepeater.Items[i].FindControl("CheckBox1") as HtmlInputCheckBox;

            if (chkBox != null && chkBox.Checked)
            {
                //
            }
        }
    }

私はプログラムでチェックボックスを設定していません-テスト中にWebページでそれらをチェックしています。私のvarチェックボックスは常にチェックされています{Value = "1,2,3,4" Checked = false}、それを手伝ってくれてありがとう。

4

2 に答える 2

1

リピーターをどのように設定していますか - page_load で行っている場合は、ポストバックに対して保護されていることを確認してください:

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        // populate your data
    }
}

編集
これは、ビューステートをオンにして作業していることを前提としています-これはデフォルトのケースです。

于 2012-03-05T11:19:56.403 に答える
0

これは、リピーターをバインドするときに関係している可能性があります。Page_Load にバインドしている場合、viewstate と post 変数が復元された後にチェック ボックスが作成されるため、値はチェックボックスに表示されません。

可能であれば、データ バインドを Page_Init に移動します。これはビューステート/投稿の値が復元される前に発生するため、チェックボックスに適切な値が割り当てられます。Page_Init でバインドできない場合は、@Aristos の回答で十分です。

于 2012-03-05T11:12:09.683 に答える