2012-11-07 4 views
0

VWD 2010 C#을 사용합니다. Default.aspx (.cs).
일어날 일 : 단추로 ID = "Day31" 레이블의 색을 변경합니다. 이 예제의 경우 월이 31 일이라는 것을 감안할 때. 버튼과 레이블은 "MainContent"안의 테이블 안에 있습니다.문자열을 웹에 전달하고 컨테이너의 변수를 제어

protected void Red_Click(object sender, EventArgs e) 
{ 
    ContentPlaceHolder MainContent = Page.Master.FindControl("MainContent") as ContentPlaceHolder; 
    int theday; 
    theday = System.DateTime.Now.Day; // example the day is 31st 
    string str="Day"+theday; 
    ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + str+ "');", true); 
    Label dayLabel = FindControl(str) as Label; 

    dayLabel.BackColor = System.Drawing.Color.Red; // this line error, "Null" 
} 

질문 :이 코드 줄에 Null 오류 메시지가 나타나는 이유는 무엇입니까?

+3

대신'MainContent.FindControl'을 사용해보십시오. –

답변

0

메서드가있는 컨테이너에 해당 ID 값을 가진 컨트롤이 없거나 해당 ID 값이 Label 인 컨트롤이 다른 형식이기 때문에 null입니다.

0

Label dayLabel = MainContent.FindControl(str) as Label;을 사용하면 효과가 있습니다.

+0

고마워, 그게 효과가 있었어! –