2013-08-28 2 views
2

이것은 내 첫 번째 게시물입니다. 도와주세요. webgrid에 datatable을 바인딩하는 방법? 내 코드 :MVC를 사용하여 webgrid에 datatable을 바인딩하는 방법은 무엇입니까?

SqlConnection con = new SqlConnection(CS); 
SqlCommand cmd = new SqlCommand("select * from candidate", con); 

DataTable dt = new DataTable(); 
SqlDataAdapter a = new SqlDataAdapter(cmd) 
a.Fill(dt); 

var result = new List<dynamic>(); 
foreach (DataRow row in dt.Rows) 
{ 
    var obj = (IDictionary<string, object>)new ExpandoObject(); 
    foreach (DataColumn col in dt.Columns) 
    { 
     obj.Add(col.ColumnName, row[col.ColumnName]); 
    } 
    result.Add(obj); 
} 

WebGrid grid = new WebGrid(Model, canPage: true, rowsPerPage: 15); 

: 나는 나를 webgrid..help하는 데이터 테이블 바인딩 할

SqlConnection con = new SqlConnection(CS); 
SqlCommand cmd = new SqlCommand("select * from candidate", con); 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
DataTable dt = new DataTable(); 
da.Fill(dt); 
return View(dt); 

은 ...

+0

이없는 방법 MVC 일을하고 웹폼 작동 방식에서 보류 이상입니다 - HTTP - .NET MVC 사용에 대한 몇 가지 튜토리얼을 검토하십시오 //www.asp를. net/mvc/tutorials – Tommy

+0

예, LINQ와 EntityFramework는 MVC와 함께 사용되는 ORM이므로 살펴보십시오. – user1477388

+0

pls 내 튜토리얼 링크를 제공 ... – Jebas

답변

2

이것은 내가 :)가 당신을 도울 수 있기를 바랍니다 발견 최선의 해결책이다 그러면보기에서 다음을 사용할 수 있습니다.

@grid.GetHtml(htmlAttributes: new { id = "empTable" }, 
      tableStyle: "table table-striped table-hover", 
      headerStyle: "header", 
      alternatingRowStyle: "alt", 
      selectedRowStyle: "select", 
      columns: grid.Columns(
       grid.Column("col1name", "Column title"), 
       grid.Column("col2name", "Column2 title") 
    )) 

여기서 grid는 WebGrid grid 변수입니다.

+1

그것은 나를 위해 작동합니다. 감사 – Osama

0

DataTable을 통해 타사 코드에서 데이터를 가져와야하므로 DataTable을 사용해야했습니다. DataGrid에 추가 된 열을 감지/반영하기 위해 WebGrid를 가져 오는 데 문제가있었습니다. mrfazolka의 답변에 따라 동적 목록으로 변환했습니다. 나는 정적 방법으로 그것을 만드는 결국 :

public static List<dynamic> DataTable2List(DataTable dt) 
    { 
     var list = new List<dynamic>(); 
     foreach (DataRow row in dt.Rows) 
     { 
     var obj = (IDictionary<string, object>) new ExpandoObject(); 
     foreach (DataColumn col in dt.Columns) 
     { 
      obj.Add(col.ColumnName, row[col.ColumnName]); 
     } 
     list.Add(obj); 
     } 
     return list; 
    } 
관련 문제