2011-03-25 6 views
0

나는 TextBoxGridview을 가지고 있습니다. DataSource없이DataSource가없는 프로그래밍 방식의 Textbox

<asp:Textbox ID="TextBox1" runat="server" ></asp:Textbox> 

<asp:GridView ID="GridView1" runat="server"> 
     </asp:GridView> 

, 내 .cs이 GRIDVIEW의 첫 번째 열을 programaticly 단지 TextBox1.Text 파일에 어떻게 추가 할 수 있습니까?

GridView1.Columns[1].ToString() = TextBox1.Text like that example 
+0

각 행의 첫 번째 열에 해당 값을 포함 하시겠습니까? –

+1

'GridView1.Columns [1]'은 첫 번째 열이 아니라 두 번째 열을 가리 킵니다. – Alex

+0

@Revinder 아니요, 첫 번째 열의 전나무 행입니다. 다른 텍스트를 추가 할 때는 첫 번째 열의 두 번째 행이어야합니다. –

답변

1

데이터가 없을 때 정보를 처리하는 방법을 찾고 계십니까? 그렇다면 GridView에서 을 사용하고 프로그래밍 방식으로 액세스하여 TextBox의 값을 표시 할 수 있습니다.

단순히 "바운드"데이터를 사용할 수없는 경우 GridView는 제대로 작동하고 제대로 표시 되려면 적어도 하나의 항목이있는 일종의 데이터 소스가 필요합니다. 그러나 GridView의 기능을 사용하기 위해 더미 데이터를 쉽게 추가 할 수 있습니다. 그런 다음 마음의 내용으로 수정할 수 있습니다.

포스트 백을 시작하는 버튼이 있거나 텍스트 상자의 OnTextChanged 이벤트를 사용할 수 있다고 가정하면 다음 코드를 추가하기 만하면됩니다.

List<string> dummyList = new List<string>(){""}; 
GridView1.DataSource = dummyList; 
GridView1.DataBind(); 

참고 : 목록 개체 단지의 GridView의 데이터 소스에 대한 자리 표시자를 사용하는 빠르고 쉬운 방법입니다. 실제로 여러 열을 사용하려는 경우 필요한 열과 빈 행을 삽입하고 간단한 바인딩을 사용하여 간단한 DataTable을 만드는 것이 좋습니다. 프로그래밍 방식으로 모든 열을 작성해야하는 번거 로움을 없애줍니다.

GridView의 RowDataBound 이벤트에서 원하는만큼 GridView를 사용할 수 있습니다.

if (e.Row.RowType -= DataControlRowType.DataRow) 
{ 
    e.Row.Cells(0).Text = TextBox1.Text; 
} 
1

좋습니다. 두 번째 행의 첫 번째 셀은 다음과 같이 액세스 할 수 있도록 열과 행이 제로로부터 시작되는 인덱스로 액세스하는 것을 기억

GridView1.Rows[0].Cells[0].Text = TextBox1.Text; 

:

를 이렇게하면 텍스트 상자의 값을 첫 번째 행의 첫 번째 셀을 설정합니다
GridView1.Rows[1].Cells[0].Text 
+0

이 코드에서 오류가 발생했습니다. ""색인이 범위를 벗어났습니다. 음수가 아니어야하며 콜렉션의 크기보다 작아야합니다. 매개 변수 이름 : index "" –

+1

@Soner Gönül : 값을 설정하기 전에 GridView에 실제로 행과 열이 포함되어 있습니까? 그렇지 않으면 먼저 만들어야 할 수도 있습니다. –

+1

당신이 옳다고 생각합니다. GridView는 TBox를 아무것도 넣지 않으면 예외를 발생시킵니다. –

관련 문제