2009-09-22 63 views
0

如何可以調用一個變量(私有標籤CCC;)調用varialble在另一個事件:從另一事件

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;在 「公共無效btnSubmit_Clic K」

它(對象引用不設置爲一個對象的一個​​實例。)

Thakns !!

回答

0

在嘗試修改.Text屬性之前,必須爲您的ccc標籤字段指定一個值。由於ccc沒有指向任何東西,你會得到這個異常。

確保在調用btnSubmit_Click函數之前,ccc字段被分配了一個Label對象,或者在函數內部執行任何操作之前分配它。

0

除了尼克的回答是:

的DropDownList1_SelectedIndexChanged事件不能保證火在每個回發 - 如果用戶提交頁面不會更改選擇,this.ccc將是無效的。即使這個.cc文件在之前的回發中被分配,如果下拉列表選擇沒有改變,它也不會在當前版本中。

因此,爲什麼您需要確保在其他地方爲其分配Label實例。例如在Page_Load中,或者甚至在您的this.ccc.Text = lblCont.Text之前的btnSubmit_Click中;一行。