2016-07-12 14 views
0

JSONの出力をGridviewに追加しようとしています。私は、データを格納するDataTableを作成し、私はそれを私のGridviewにバインドしようとしています。私がデバッグするとき、私は各値がDataTableに追加されるのを見ます。結局、10行あります。しかし、何も最終的にはGridviewに束縛されません。他に何かを追加する必要があるかどうかを教えてください。JSON文字列をGridviewにバインドする

var data = JsonConvert.DeserializeObject<RootObject>(result); 

DataTable dt = new DataTable(); 
dt.Columns.Add("Site", typeof(string)); 
dt.Columns.Add("Status", typeof(int)); 

foreach (var item in data.records) 
{ 
    string site = item.name; 
    string status = item.data; 
    DataRow row = dt.NewRow(); 
    row[0] = site; 
    row[1] = status; 
    dt.Rows.Add(row); 
} 

GridView1.DataSource = dt; 
GridView1.DataBind(); 

JSON出力。ちょうどレコードの部分。

{ 
    "kind":"internal", 
    "name":"SplashPageToggle_dg", 
    "fullPath":"SplashPageToggle_dg", 
    "generation":1255326, 
    "selfLink":"https://link", 
    "type":"stri ng", 
    "records":[ 
     { 
      "name":"enable_app1", 
      "data":"0" 
     }, 
     { 
      "name":"enable_app2", 
      "da ta":"0" 
     }, 
     { 
      "name":"enable_app3", 
      "data":"0" 
     }, 
     { 
      "name":"enable_app4", 
      "data":"0" 
     }, 
     { 
      "name":"enable_app5", 
      "data":"0" 
     }, 
     { 
      "name":"enable_app6", 
      "data":"1" 
     }, 
     { 
      "name":"enable_app7", 
      "data":"0" 
     }, 
     { 
      "name":"enable_app8", 
      "data":"0" 
     }, 
     { 
      "name":"enable_app9", 
      "data":"0" 
     }, 
     { 
      "name":"enable_app10", 
      "data":"0" 
     } 
    ] 
} 

GridViewのコード

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Visible="true"> 
    <Columns> 
     <asp:BoundField HeaderText="Site" /> 
     <asp:BoundField HeaderText="Status" /> 
    </Columns> 
</asp:GridView> 
+0

DataGridに入れたいJSONを投稿できますか? – jcvegan

+0

JSON出力を追加しました – maltman

+1

'status'を' typeof(string) 'に変更しました –

答えて

3

DataTableの行を持っている場合、あなたはJSONからデータを取得することができます。 gridview HTMLコードの何が間違っているかを確認する必要があります。他のページからコピー貼り付けをして、フィールド値が間違っている可能性があります。 gridviewコードを投稿すると便利です。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Visible="true"> 
    <Columns> 
     <asp:BoundField DataField="site" HeaderText="Site" /> 
     <asp:BoundField DataField="status" HeaderText="Status" /> 
    </Columns> 
</asp:GridView> 
+0

が投稿されました。あまりコードではありません。 – maltman

+1

グリッドビューのHTMLに基づいて答えを更新しました。 datafield属性をgridviewコードに追加しました。 –

+0

うわー。それがそれほど簡単ではないと信じられない。ありがとうございました。 – maltman

関連する問題