Asp.Net программно создал флажок управления, определяющий состояние проверки - PullRequest
0 голосов
/ 28 августа 2011

Динамически созданная Tablerow / Tablecell / Checkbox.Ожидается, что пользователь установит / снимет флажок, а затем нажмете отдельное выполнение btn.Независимо от того, где я поставил свой код запроса, я всегда получаю «ложный» результат.Я сократил его до самой простой формы в тестовом проекте ниже.Этот код запроса дополняется ошибкой с индексом вне диапазона, поскольку программная строка не переносится с системной переменной.«Жестко закодированный» флажок внутри жестко закодированного ряда ведет себя так, как я и ожидал, поэтому мне не хватает чего-то довольно простого.спасибо Боб

protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
            CheckState();
        else
        {
            MakeARow();

        }
    }

    private void MakeARow()
    {
        TableRow r = new TableRow();
        TableCell c = new TableCell();
        CheckBox k = new CheckBox();

        c.Controls.Add(k);
        r.Cells.Add(c);
        Table1.Rows.Add(r);
    }

    private void CheckState()
    {
        Table t = (Table) Session["MyTable"];

        if (((CheckBox) t.Rows[0].Cells[0].Controls[0]).Checked)
            this.Label1.Text = "Checked";
        else
        {
            this.Label1.Text = "UnChecked";
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Session["MyTable"] = Table1;
    }

1 Ответ

0 голосов
/ 28 августа 2011

Вы должны создать строку перед событием Page_Load, т.е. в Page_Init.Для получения более подробной информации вы можете проверить документацию для жизненного цикла страницы ASP.NET - http://msdn.microsoft.com/en-us/library/ms178472.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...