private void createnewTable(int ts,int sid)
{
SubjectClass s1 = new SubjectClass();
List<string> sub = new List<string>();
sub = s1.returnSubjectList(sid);
Table timetable = new Table();
int height = 20;
Panel1.Attributes.Add("style", "height:" + height.ToString() + "px;");
for (int i = 1; i <= ts; i++)
{
height = height + 20;
TableRow tr = new TableRow();
TableCell td1 = new TableCell();
Label lbl = new Label();
lbl.Text = "Lecture" + (i).ToString();
td1.Controls.Add(lbl);
tr.Controls.Add(td1);
for (int j = 1; j <= 6; j++)
{
TableCell td2 = new TableCell();
DropDownList drop_sub = new DropDownList();
drop_sub.ID = "drop" + i.ToString() + j.ToString();
foreach (string s in sub)
{
drop_sub.Items.Add(s.ToString());
}
drop_sub.Items.Add("No lecture");
td2.Controls.Add(drop_sub);
tr.Controls.Add(td2);
Panel1.Attributes.Add("style", "height:" + height.ToString() + "px;");
}
timetable.Controls.Add(tr);
}
panel_timetable.Controls.Add(timetable);
}
protected void btn_save_Click(object sender, EventArgs e)
{
int totsub = int.Parse(Session["ts"].ToString());
Session["ts"] = null;
List<string> sub = new List<string>();
for (int i = 1; i <= totsub; i++)
{
for (int j = 1; j <= 6; j++)
{
DropDownList drop = new DropDownList();
drop = (DropDownList)(panel_timetable.FindControl("drop"+i.ToString()+j.ToString()));//here error that Object reference //not set to an instance of an object.
string str = drop.SelectedValue;
sub.Add(str);
}
}
}
위 코드에서 여러 개의 DropDownList 컨트롤이있는 새 테이블을 만들고 드롭 다운 목록에 채워진 데이터를 저장하려는 버튼을 클릭하여 저장하고 싶습니다. 테이블에. FindControl에서 Object 참조가 객체의 인스턴스로 설정되지 않는다는 오류가 표시됩니다. 동적으로 생성 된 컨트롤은 다시 게시 후 플러시 수 있기 때문에여러 개의 드롭 다운 목록이있는 동적 양식에서 데이터 가져 오기