2011-03-24 3 views
0

첫 번째 행이 비어있는 것으로 업데이트 패널에 격자보기를 배치했으며 모든 데이터베이스에 바인딩되지 않았습니다. 오히려 데이터 표가있는 표 뷰를 바인딩했습니다. '새 행 추가'버튼을 클릭 할 때마다 이전 행의 데이터 필드를 유지함으로써 그리드보기에 새 행이 만들어 지지만 저장 버튼을 클릭 할 때마다 첫 번째 행의 데이터가 재 시도되지는 않지만 두 번째 줄과 그 이후에 채워지는 데이터를 얻을 수 있습니다. 내 데이터 테이블을 세션에 저장하고 각 게시물마다 다시 가져옵니다. 여기 격자보기의 첫 번째 빈 행에 입력 된 데이터를 검색 할 수 없습니다.

내 .aspx.cs 페이지 대신 세션의

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 
using AppResumeMaster; 
using System.Collections; 
using AppQualificationDetail; 


public partial class Applicant_ApplicationForm : System.Web.UI.Page 
{ 
    int Rows = 1; 
    object MaxAppId = 0; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      setInitialRow(); 
     } 
    } 
    protected void saveBtn_Click(object sender, EventArgs e) 
    { 

     try 
     { 
      using (DataOperation oDo = new DataOperation()) 
      { 
       MaxAppId= oDo.ExecuteScaler("select max(AppId) from tblAppResumeMaster"); 
       if (MaxAppId == System.DBNull.Value) 
        MaxAppId = 0; 
      } 

      using (AppResumeMasterClass objAppResumeMasterClass = new AppResumeMasterClass()) 
      { 
       objAppResumeMasterClass.AppId = Convert.ToInt32(MaxAppId)+1; 
       objAppResumeMasterClass.AppFirstName = firstnameBox.Text; 
       objAppResumeMasterClass.AppLastName = lastnameBox.Text; 
       objAppResumeMasterClass.AppAddress1 = CurAddBox.Text; 
       objAppResumeMasterClass.AppCity1 = CurAddBox.Text; 
       objAppResumeMasterClass.AppState1 = CurStateBox.Text; 
       objAppResumeMasterClass.AppCountry1 = CurCountrybox.Text; 
       objAppResumeMasterClass.AppAddress2 = PerAddBox.Text; 
       objAppResumeMasterClass.AppCity2 = PerCityBox.Text; 
       objAppResumeMasterClass.AppState2 = PerStateBox.Text; 
       objAppResumeMasterClass.AppCountry2 = PerCountrybox.Text; 
       objAppResumeMasterClass.AppEmail1 = emailBox.Text; 
       objAppResumeMasterClass.AppEmail2 = AltEmailBox.Text; 
       objAppResumeMasterClass.AppMobileNo = mobileNoBox.Text; 
       objAppResumeMasterClass.AppContactNo = phoneNoBox.Text; 
       objAppResumeMasterClass.AppDOB = Convert.ToDateTime(birthDateBox.Text); 
       objAppResumeMasterClass.AppKeySkill = skillsBox.Text; 
       objAppResumeMasterClass.AppGoal = goalBox.Text; 
       objAppResumeMasterClass.AppWeakness = weaknessBox.Text; 
       objAppResumeMasterClass.AppStrengths = strengthsBox.Text; 

       objAppResumeMasterClass.setVal(1); 
      } 

      DataTable Table = (DataTable)Session["CurTable"]; 
      int cnt = Table.Rows.Count; 
      using(AppQualificationDetailClass objAppQualificationDetail = new AppQualificationDetailClass()) 
      { 
       for (int RowCnt = 0; RowCnt < Table.Rows.Count; RowCnt++) 
       { 
        objAppQualificationDetail.AppId = Convert.ToInt32(MaxAppId) + 1; 
        objAppQualificationDetail.QualiId = Convert.ToInt32(Table.Rows[RowCnt][1]); 
        objAppQualificationDetail.Year = Convert.ToInt32(Table.Rows[RowCnt][3]); 
        objAppQualificationDetail.Percentage = (float)Table.Rows[RowCnt][2]; 
        objAppQualificationDetail.InstiName = Table.Rows[RowCnt][4].ToString(); 


        objAppQualificationDetail.setVal(1); 
       } 

      } 
      ExistMsgLbl.Text = Table.Rows[0][2].ToString(); 
     } 

     catch (Exception ex) 
     { 

      throw ex; 
     } 
    } 
    protected void addRowBtn_Click(object sender, EventArgs e) 
    { 
     AddNewRow(); 
    } 
    protected void InstituteLbl_PreRender(object sender, EventArgs e) 
    { 
     //Session.Add("Table", Table1); 
    } 
    public void setInitialRow() 
    { 
     DataTable Table = new DataTable(); 
     DataRow dr = null; 
     Table.Columns.Add(new DataColumn("Qualification",typeof(string))); 

     Table.Columns.Add(new DataColumn("QualiId",typeof(string))); 

     Table.Columns.Add(new DataColumn("Percentage",typeof(string))); 
     Table.Columns.Add(new DataColumn("Passing Year",typeof(string))); 
     Table.Columns.Add(new DataColumn("Institute Name",typeof(string))); 
     dr = Table.NewRow(); 

     dr["Percentage"] = string.Empty; 
     dr["Passing Year"] = string.Empty; 
     dr["Institute Name"]=string.Empty; 

     Table.Rows.Add(dr); 
     Session.Add("CurTable", Table); 
     GridView1.DataSource = Table; 
     GridView1.DataBind(); 


     ArrayList Array = new ArrayList(); 
     DataSet ds = new DataSet(); 
     DropDownList DDL = (DropDownList)GridView1.Rows[0].Cells[0].FindControl("QualificationList"); 
     FillDropDownList(DDL); 
     } 
    public void AddNewRow() 
    { 
     DataSet ds=new DataSet(); 

     int RowIndex = 0; 
     if (Session["CurTable"] != null) 
     { 
      DataTable CurTable = (DataTable)Session["CurTable"]; 
      DataRow CurRow = null; 
      if (CurTable.Rows.Count > 0) 
      { 
       CurRow = CurTable.NewRow(); 
       CurTable.Rows.Add(CurRow); 
       Session.Add("CurTable", CurTable); 
       for (int count = 0; count < CurTable.Rows.Count - 1; count++) 
       { 
        DropDownList DDL = (DropDownList)GridView1.Rows[count].Cells[0].FindControl("QualificationList"); 
        TextBox PercentageBox = (TextBox)GridView1.Rows[count].Cells[1].FindControl("percentageBox"); 
        TextBox yearBox = (TextBox)GridView1.Rows[count].Cells[1].FindControl("yearBox"); 
        TextBox InstituteNameBox = (TextBox)GridView1.Rows[count].Cells[1].FindControl("InstituteNameBox"); 

        CurTable.Rows[count]["Percentage"] = PercentageBox.Text; 
        CurTable.Rows[count]["Passing Year"]=yearBox.Text; 
        CurTable.Rows[count]["Institute Name"]=InstituteNameBox.Text; 
        CurTable.Rows[count]["Qualification"]=DDL.SelectedItem.Text; 
        CurTable.Rows[count]["QualiId"] = DDL.SelectedValue; 
       } 

       GridView1.DataSource = CurTable; 
       GridView1.DataBind(); 

      } 
     } 
     setPreviousData(); 
    } 
    public void setPreviousData() 
    { 
     int RowIndex = 0; 
     if (Session["CurTable"] != null) 
     { 
      DataTable RestoreTable = (DataTable)Session["CurTable"]; 
      if (RestoreTable.Rows.Count > 0) 
      { 
       for (int row = 0; row < RestoreTable.Rows.Count; row++) 
       { 
        DropDownList DPList = (DropDownList)GridView1.Rows[row].Cells[0].FindControl("QualificationList"); 
        TextBox PercentageBox = (TextBox)GridView1.Rows[row].Cells[1].FindControl("percentageBox"); 
        TextBox YearBox = (TextBox)GridView1.Rows[row].Cells[2].FindControl("yearBox"); 
        TextBox InstituteName = (TextBox)GridView1.Rows[row].Cells[3].FindControl("InstituteNamebox"); 

        FillDropDownList(DPList); 

        if (row < RestoreTable.Rows.Count - 1) 
        { 
         PercentageBox.Text = RestoreTable.Rows[row]["Percentage"].ToString(); 
         YearBox.Text = RestoreTable.Rows[row]["Passing Year"].ToString(); 
         InstituteName.Text = RestoreTable.Rows[row]["Institute Name"].ToString(); 

         DPList.ClearSelection(); 
         DPList.Items.FindByText(RestoreTable.Rows[row]["Qualification"].ToString()).Selected = true; 
        } 
        RowIndex++; 
       } 
      } 
     } 
    } 
    private ArrayList FillArrayList() 
    { 
     ArrayList ArrayList = new ArrayList(); 
     DataSet ds = new DataSet(); 
      using(DataOperation oDo = new DataOperation()) 
      { 
      ds =oDo.DropDownList("select * from tblQualificationMaster"); 
      for(int count=0;count<ds.Tables[0].Rows.Count;count++) 
      { 
       ArrayList.Add(new ListItem(ds.Tables[0].Rows[count][1].ToString(), ds.Tables[0].Rows[count][0].ToString())); 
      } 
     } 
      return ArrayList; 
    } 
    private void FillDropDownList(DropDownList DDL) 
    { 
     ArrayList ArrayList = FillArrayList(); 
     foreach (ListItem item in ArrayList) 
     { 
      DDL.Items.Add(item); 
     } 

    } 
} 

답변

1

사용의 ViewState의 코드입니다.

관련 문제