2012-04-30 3 views
2

당신은 내가있는 gridview에서 텍스트 상자 컨트롤입니다 값으로 그 텍스트 상자를 채우려 그러나Gridview 컨트롤의 값으로 textbox를 채우는 방법은 무엇입니까? 다만 일정한 값으로

protected void GridView1_SelectedIndexChanged(Object sender, EventArgs e) 
{ 
    GridViewRow email = GridView1.SelectedRow; 
    txtbox.Text = email.Cells[5].Text; 

} 

다음처럼 작성할 수 있습니다. 행 목록이 있고 해당 행을 선택하면 해당 텍스트 상자에 해당 컨트롤 값이 채워집니다. 도움이나 조언을 주시면 감사하겠습니다.

답변

1

내가 이것에 대한 datakeys을 사용하는 것이 좋습니다 것입니다. 그것은 셀 인덱스를 사용하는 것보다 훨씬 더 쉽게 그리고 더 많은 신뢰성의 다음에, 그 다음

<asp:GridView ID="Gridview1" runat="server" DataKeyNames="Column1, Column2" ...> 

을 코드 숨김이 같은 값에 액세스 할 수 있습니다

protected void GridView1_SelectedIndexChanged(Object sender, EventArgs e) 
{ 
    GridViewRow email = GridView1.SelectedRow; 
    txtbox.Text = (string)GridView1.DataKeys[email.RowIndex]["Column1"];  
} 
+0

이 컨트롤에 적용됩니까? – javasocute

+0

무슨 소리 야? 데이터 키를 언급하고 있습니까? –

+0

'GridViewRow'에서 컨트롤의 값을 채우려고합니까? –

1

아래 코드를 시도하십시오.

TextBox tb = GridView1.SelectedRow.FindControl("textboxId") as TextBox; 
textbox.Text = tb.Text; 
+0

"개체 참조가 개체의 인스턴스로 설정되지 않았습니다." 오류. 그러나 나는 그것이 정말로 가깝다고 느낍니다. – javasocute

+0

tb가 null이어야하기 때문입니다. add If (tb! = null) textbox.Text = tb.Text; –

+0

SelectedIndexChanging을 사용했다면 코드는 TextBox tb = GridView1.Rows [e.NewSelectedIndex] .FindControl ("textboxId")을 TextBox로 사용합니다. –

1

이 시도 :

GridView1.RowCommand += GridView1_RowCommand; 
private void GridView1_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e) 
{ 
     if (e.CommandName == "Select") 
     { 
      int index = Convert.ToInt32(Convert.ToString(e.CommandArgument)); 
      GridViewRow row = GridView1.Rows[index]; 
      this.NameTextBox.Text = Server.HtmlDecode(row.Cells[1].Text); 

     } 

} 
+0

이것은 VB 코드로서 C#에 태그를 추가하여 C#으로 게시하십시오. –

+0

@ Kamran- 제안에 대한 감사합니다. – coder

0

당신은 더 나은 코드를 찾을 수 있습니다 양식의 텍스트 상자 값으로 gridview를 채우는 방법은 여기를 참조하십시오. http://sharepoint-2010-world.blogspot.in/2013/10/populating-grid-with-form-values.html

+0

** 대답하지 않는 방법 **에 대한 이해를 높이려면 http://stackoverflow.com/help/deleted-answers를 읽어보십시오. 즉 : "근본적으로 질문에 대답하지 않는 답변": ** 외부 사이트에 대한 링크 이상의 기능 ** –

관련 문제