2011-12-09 2 views
2

SQL 테이블의 일부 정보를 표시하는 DataGrid가 있으며 사용자가 데이터베이스에 레코드를 추가 할 수 있도록 간단한 텍스트 상자와 단추가 있습니다. 문제는 사용자가 추가를 클릭하면 데이터 그레이드가 업데이트해야하지만 아이디어가 없다는 것입니다. 문제의 코드는 다음과 같습니다.Datagrid 새로 고침이 작동하지 않습니다.

protected void Page_Load(object sender, EventArgs e) 
    { 
     username.Text = Session["username"].ToString(); 
     datetime.Text = DateTime.Now.ToString(); 

     BindData(); 
    } 

protected void BindData() 
    { 
     string SQLQuery = "SELECT * From Filters"; 

     OleDbConnection MyConn = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString); 

     DataSet resultsDataSet = new DataSet(); 
     MyConn.Open(); 

     OleDbDataAdapter DataAdapter = new OleDbDataAdapter(SQLQuery, MyConn); 
     DataAdapter.Fill(resultsDataSet); 
     DGFilters.DataSource = resultsDataSet; 
     DGFilters.DataBind(); 

     if (resultsDataSet.Tables[0].Rows.Count == 0) 
     { 
      no_records.Visible = true; 
      DGFilters.Visible = false; 
     } 
     else 
     { 
      DGFilters.Visible = true; 
      no_records.Visible = false; 
     } 

     MyConn.Close(); 
    } 

    protected void AddFilter_Click(object sender, EventArgs e) 
    { 
     OleDbConnection MyConn = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString); 

     MyConn.Open(); 

     string SQLInsert = "INSERT INTO Filters (FilterString) VALUES ('" + FilterToAdd.Text + "')"; 

     OleDbCommand MyCmd = new OleDbCommand(SQLInsert, MyConn); 

     MyCmd.ExecuteNonQuery(); 

     MyConn.Close(); 

     DataBind(); 

    } 

아이디어가 있으십니까?

답변

2

AddFilter_Click 메서드의 맨 아래에서 자신의 BindData()이라고 불러 와서 새 레코드로 그리드를 새로 고칠 수 있습니다. 지금은 DataBind()을 호출하고 있습니다.이 클래스는 전체 웹 양식에 적용되는 Control 클래스의 메서드입니다. 나는 이것이 많은 것을하지 않는다고 생각합니다.

또한, 귀하를 Page_Load 메서드에서, 당신은 아마이를 변경할 수 있습니다 :

BindData(); 

사용자가 클릭은 '추가 할 때 두 번 그리드를 결합하지 않도록

if (!Page.IsPostBack) 
    BindData(); 

에 '버튼을 누릅니다.

+0

blimey guvnor. 피곤할 때 코드 작성을 시도 할 때 발생하는 상황입니다. BindData! = DataBind. D' oh !!!! –

+0

@ 조나단 - 어 적게 황소 oughtta 그 수정 : –

+0

또한 -이 대답처럼 asp.net 배지에 대한 100 upvotes 날 puts - 너무 감사합니다 : - P –

관련 문제