HtmlInputCheckBox в Repeater всегда не проверяется - PullRequest
0 голосов
/ 05 марта 2012

Я использую HtmlInputCheckBox в повторителе, добавив

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

к повторителю-> 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)
            {
                //
            }
        }
    }

Я не устанавливаю программно какие-либо флажки для установки - я проверяю их на веб-странице во время теста.Мой флажок var всегда не проверен {Value = "1,2,3,4" Checked = false}, спасибо за помощь в этом.

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Как вы заполняете свой ретранслятор - если вы делаете это в page_load, убедитесь, что он защищен от обратных передач:

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

РЕДАКТИРОВАТЬ
Это предполагает, что вы работаетес включенным viewstate - по умолчанию.

0 голосов
/ 05 марта 2012

Это может быть связано с тем, когда вы связываете свой ретранслятор.Если вы привязываете к Page_Load, флажки будут созданы после того, как viewstate и post переменные будут восстановлены, поэтому значение не будет в ваших флажках.

Если возможно, переместите привязку данных в Page_Init;так как это происходит до того, как значения viewstate / post будут восстановлены, ваши флажки получат правильные назначенные значения.Если вы не можете связать Page_Init, то ответ @ Aristos подойдет.

...