вызывая переменную из другого события - PullRequest
0 голосов
/ 22 сентября 2009

как я могу вызвать переменную ( private Label ccc; ) в другом событии:

private Label ccc;

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {

        Label Label1 = FindControlRecursive(Page, DropDownList1.SelectedValue) as Label;
        if (Label1 != null)
            this.ccc = lblCont;
            this.ccc.Text = Label1.Text;
    }


 public void btnSubmit_Click(object sender, EventArgs e)
    {
        try
        {


          this.ccc.Text = lblCont.Text;


            int bbb = Convert.ToInt32(lblCont.Text) - Convert.ToInt32(tbEnter.Text);
            if (bbb >= 0)
            {
                lblCont.Text = Convert.ToString(bbb);

            }
            else
            {
                ErrorDisplay.Text = "There are not enough tickets";
            }
        }
    catch (Exception ex)
    {
        ErrorDisplay.Text = ex.Message;
    }


}

Я не могу вызвать this.ccc.Text = lblCont.Text; в " public void btnSubmit_Clic k"

Имеется (ссылка на объект не установлена ​​для экземпляра объекта.)

Thakns !!

Ответы [ 2 ]

0 голосов
/ 22 сентября 2009

В дополнение к ответу Ника:

Событие DropDownList1_SelectedIndexChanged не гарантируется при каждой обратной передаче - если пользователь отправляет страницу без изменения выбора, this.ccc будет нулевым. Даже если this.ccc был назначен в предыдущем постбеке, он не будет в текущем, если выбор из выпадающего списка не изменился.

Следовательно, почему вы должны убедиться, что вы назначаете ему экземпляр Label где-то еще. Например, в Page_Load или даже в btnSubmit_Click непосредственно перед вашей this.ccc.Text = lblCont.Text; строкой.

0 голосов
/ 22 сентября 2009

Вашему полю ccc Label должно быть присвоено значение, прежде чем вы попытаетесь изменить свойство .Text.Поскольку ccc ни на что не указывает, вы получаете это исключение.

Убедитесь, что перед вызовом функции btnSubmit_Click поле ccc назначено объекту Label, или назначьте его перед выполнением каких-либо действий внутри функции.

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