2011-05-12 5 views
0

aspx 페이지에서 gridview를 사용하고 있습니다. Textbox를 griview 헤더에 동적으로 추가하고 있습니다. 눈금 머리글의 텍스트 상자에 값을 삽입하려면 어떻게합니까? 내 코드는 내가 코드값을 Gridview 헤더의 텍스트 상자에 바인딩

private void FillGridView() 
{ 
    TextBox txt; 
    txt = (TextBox)GridView1.HeaderRow.FindControl("txtBox1"); 
    txt.Text = dtValues.Rows[0][5].ToString(); 
} 

를 사용하여 텍스트 상자 'txtBox1'에 값을 바인딩하려고

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.Header) 
    { 
    TextBox txtBox1 = default(TextBox); 
    for (int i = 0; i <= (e.Row.Cells.Count - 1); i++) 
     { 
     litHeader.Text = e.Row.Cells[i].Text + "<br/>"; 
     e.Row.Cells[i].Controls.Add(litHeader);         
     e.Row.Cells[i].Controls.Add(txtBox1); 
    } 
    } 
} 

처럼 간다하지만 텍스트 상자를 채울 수 없습니다입니다. 도와주세요.

+2

어디에서 'FillGridView' 메소드를 호출하고 있습니까? 그 이후에 일어날 필요가 RowDatabound 이벤트 – Chad

+0

나는 gridview에서 데이터를 바인딩 한 후 텍스트 상자를 찾으려고합니다. 내 코드는 GridView1.DataSource = dt; GridView1.DataBind(); txt = (TextBox) GridView1.HeaderRow.FindControl ("txtBox1"); –

답변

0

아주 오래된 질문을하는 사람에게 도움이 될 수 있습니다. 이렇게하면 GV1에 데이터를 삽입 한 직후에 머리글 행 텍스트 상자를 업데이트하는 방법입니다. 희망이 도움이됩니다.

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 

     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 

     } 


     if (e.Row.RowType == DataControlRowType.Header) 
     { 
      //((TextBox)GridView1.HeaderRow.FindControl("tbProjNumInsert")).Text 
      if (newMaxNum != null && newMaxNum.Length > 0) 
      {     
      ((TextBox)e.Row.Cells[4].FindControl("tbProjNumInsert")).Text = newMaxNum; 
      System.Diagnostics.Debug.WriteLine("GridView1_RowDataBound()...GridView1.Width !!!! " + ((TextBox)e.Row.Cells[4].FindControl("tbProjNumInsert")).Text + "........newMaxNum:" + newMaxNum); 
      } 
     } 

    } 
관련 문제