private void SetInitialCourse() { //Create DataTable DataTable dt = new DataTable(); DataRow dr = null; //Add initail values to DataTable dt.Columns.Add(new DataColumn("RowNumberCourse", typeof(string))); dt.Columns.Add(new DataColumn("Column1Course", typeof(string))); dt.Columns.Add(new DataColumn("Column2Course", typeof(string))); //dt.Columns.Add(new DataColumn("Column3", typeof(string))); dr = dt.NewRow(); dr["RowNumberCourse"] = 1; dr["Column1Course"] = string.Empty; dr["Column2Course"] = string.Empty; //dr["Column3"] = string.Empty; dt.Rows.Add(dr); dr = dt.NewRow(); //Store the DataTable in ViewState ViewState["CurrentTableCourse"] = dt; GV_EnterCourseMarks.DataSource = dt; GV_EnterCourseMarks.DataBind(); }
//add course-marks private void AddNewRowToCourse() { int rowIndex = 0; if (ViewState["CurrentTableCourse"] != null) { //create new datatable, cast datatable of viewstate DataTable dtCurrentTable = (DataTable)ViewState["CurrentTableCourse"]; DataRow drCurrentRow = null; if (dtCurrentTable.Rows.Count > 0) { for (int i = 1; i <= dtCurrentTable.Rows.Count; i++) { //extract the values DropDownList courseList = (DropDownList)GV_EnterCourseMarks.Rows[rowIndex].Cells[1].FindControl("DL_Course"); TextBox marks = (TextBox)GV_EnterCourseMarks.Rows[rowIndex].Cells[2].FindControl("TB_EnterMarks"); drCurrentRow = dtCurrentTable.NewRow(); drCurrentRow["RowNumberCourse"] = i + 1; dtCurrentTable.Rows[i - 1]["Column1Course"] = courseList.Text; dtCurrentTable.Rows[i - 1]["Column2Course"] = marks.Text; rowIndex++; } dtCurrentTable.Rows.Add(drCurrentRow); ViewState["CurrentTableCourse"] = dtCurrentTable; GV_EnterCourseMarks.DataSource = dtCurrentTable; GV_EnterCourseMarks.DataBind(); } } else { Response.Write("ViewState is null"); } //Set Previous Data on Postbacks SetPreviousCourseData(); }
//remove course-marks protected void Remove_Btn_Click(object sender, EventArgs e) { if (ViewState["CurrentTableCourse"] != null) { //create new datatable, cast datatable of viewstate DataTable dtCurrentTable = (DataTable)ViewState["CurrentTableCourse"]; DataRow drCurrentRow = null; int rowIndex = 0; if (dtCurrentTable.Rows.Count > 1) { for (int i = 1; i <= dtCurrentTable.Rows.Count; i++) { //extract the values DropDownList courseList = (DropDownList)GV_EnterCourseMarks.Rows[rowIndex].Cells[1].FindControl("DL_Course"); TextBox marks = (TextBox)GV_EnterCourseMarks.Rows[rowIndex].Cells[2].FindControl("TB_EnterMarks"); drCurrentRow = dtCurrentTable.NewRow(); drCurrentRow["RowNumberCourse"] = i; dtCurrentTable.Rows[i - 1]["Column1Course"] = courseList.Text; dtCurrentTable.Rows[i - 1]["Column2Course"] = marks.Text; rowIndex++; } dtCurrentTable.Rows[rowIndex - 1].Delete(); ViewState["CurrentTableCourse"] = dtCurrentTable; GV_EnterCourseMarks.DataSource = dtCurrentTable; GV_EnterCourseMarks.DataBind(); } } SetPreviousCourseData(); }
//Delete an existing Row protected void GV_EnterCourseMarks_RowDeleting(object sender, GridViewDeleteEventArgs e) { GV_EnterCourseMarks.DeleteRow(e.RowIndex); SetPreviousCourseData(); }