2013-07-08 6 views
0

편집 명령 필드가있는 gridview가 있습니다. Gridview의 templatefield 중 하나에서 편집 항목 템플릿 안에 텍스트 상자가 있습니다. RowUpdating 이벤트에서 텍스트 상자의 값을 가져 오려고합니다.항목 템플릿 편집 GridView 혼동의 TextBox 값

TextBox text = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtfname"); 

GridViewRow row =GridView1.Rows[e.RowIndex] as GridViewRow; 

TextBox tFirstName = row.FindControl("txtfname") as TextBox; 

TextBox textFName = (TextBox)row.Cells[0].Controls[3]; 

내가 내가 내가 컨트롤 사용하여 바인딩에 바인딩 된 값을 얻을 조건을 제거 empty.If로 textbox.text 값을 얻을

if(!IsPostBack)Bind_grid(); 

을 넣어 세 methods.When 시도 기능을 사용할 수 있습니다. 컨트롤에서 편집중인 값을 얻지 못했습니다.

어디로 잘못 가고 있습니까? 해결책?

+0

은 누군가가 빨리 도와 :( –

답변

0

그리드에 페이징이 설정되어 있다고 생각합니다. 그리드 (데이터 소스 아님)에 표시되는 행의 인덱스를 가져 오는 것입니다.

예 : 그리드의 2 페이지에 있고 페이지 당 10 개의 항목이 있습니다. 3 행의 편집을 클릭하십시오. e.RowIndex는 2가됩니다.

데이터 원본에 매핑하려는 경우이 값은 ... ((1 페이지) * 항목) + 인덱스 여야합니다. = 12

((2-1) * 10) + 2 그래서 데이터 소스에서이 위치에있는 항목을 얻어야한다 (12)

+0

나는 돼요 현재 페이지의 텍스트 상자 값을 원합니다. 예 페이징을 활성화했습니다 –

+0

GridViewEditEventArgs, GridViewRowEventArgs 또는 GridViewUpdatedEventArgs를 사용하는 이벤트는 무엇입니까? – mtzaldo

+0

질문은 Rowupdating .. Signature에는 GridViewUpdateEventArgs가 있습니다. –