2014-12-10 3 views
0

파일 경로 (문자열)를 XML 파일과 열 머리글, 열 필드의 사전에 넣고 CRUD 작업을 사용하여 동적으로 gridview를 만드는 사용자 지정 컨트롤을 만듭니다. 내가 알고 싶은 것은 단지 코드를 사용하여 Text = '< % #Bind ("field") %>'를 복제/달성하는 방법입니다.코드를 사용하여 Text = '<% #Bind ("field") %>'를 복제/달성하는 방법은 무엇입니까? (asp.net C#)

나는 노력의 생각 :

Dictionary<string, string> columns = new Dictionary<string, string>(); 

foreach (KeyValuePair<string, string> column in columns) 
      { 
       BoundField bField = new BoundField(); 
       bField.DataField = column.Value; 
       bField.HeaderText = column.Key; 
       GridView1.Columns.Add(bField); 
      } 

내가 .DataField 또는 텍스트 중 하나를 사용하여 같은 제안을 열려있어 = '<% #Bind ("필드") %>'또는 어떤 식 으로든 내가 천국 최종 목표를 달성했다면 생각하지 못했습니다. CRUD와 마찬가지로 누구나이 작업을 수행 할 수있는 좋은 방법을 추천 할 수 있습니까? 어쩌면 동적으로 텍스트 상자 및 레이블 컨트롤을 gridview에 삽입 할 수 있습니까? 웹용 Visual Studio Express 2013을 사용하고 있습니다.

답변

1

ItemDataBound 이벤트를 재정의합니다. 각 행에 동적으로 컨트롤을 추가 할 생각이라면 Repeater와 같은 다른 종류의 템플릿 컨트롤을 사용하는 것이 좋습니다.

UPDATE -

먼저 당신이 RowDataBound 이벤트를 처리해야합니다 예 (내 나쁜하여 ItemDataBound하지, 즉 DataGrid에 대한의) : -

protected override void OnInit(EventArgs e) 
    { 
     grid.RowDataBound += grid_RowDataBound; 

이 당신의 사전에서 열을 설정 열 이름 (I 문자열 배열을 사용했지만, 당신은 아이디어를 얻을) : -

 var columns = new string[] { "Column 1", "Column 2", "Column 3" }; 

     foreach (var columnName in columns) 
     { 
      grid.Columns.Add(new BoundField { HeaderText = columnName }); 
     } 

을 그런 다음 RowDataBound 이벤트 -

void grid_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      var data = ({your object type})e.Row.DataItem; 

      e.Row.Cells[0].Text = data.{fieldname}; 
      e.Row.Cells[1].Text = data.{fieldname}; 
      . 
      . 
      . 
      e.Row.Cells[n].Text = {something}; 
     } 
    } 
+0

예를 들어 주시면 감사하겠습니다. – Tom

+0

필드 이름이 예를 들어 문자열 배열이고 하드 코드되지 않은 경우 '= data. {fieldname}'을 수행하는 방법에 대한 자세한 예제 나 다른 예제를 RowDataBound 이벤트에 제공 할 수 있습니까? 이것은 의미가 있습니다. 데이터를 성공적으로 표시 할 수 있지만 CRUD 작업을 처리 할 수 ​​있는지 확인해야합니다. – Tom

+0

문자열 배열을 GridView의 데이터 소스로 사용하려는 경우 "CRUD 작업 처리"를 수동으로 수행해야하며 실제로 GridView 데이터 바인딩을 효과적으로 사용하지 않을 것입니다. 다음은 GridView를 사용하여 CRUD 작업을 올바르게 처리하는 방법을 설명하는 몇 가지 기사입니다. DotNetGallery http://bit.ly/1vQTxIS 및 C-SharpCorner http://bit.ly/1unxFQJ. 나중에 주변에 있다면 원하는 경우 채팅을 통해 도움을 드리겠습니다. – sh1rts