2016-07-12 4 views
0

Я пытаюсь извлечь выходные данные из своего JSON и добавить его в Gridview. Я создал DataTable для хранения данных, и я пытаюсь связать это с моим Gridview. Когда я отлаживаю, я вижу, что каждое значение добавляется в DataTable. К концу 10 строк. Но в конце концов ничего не связывает с Gridview. Дайте мне знать, если мне нужно добавить что-нибудь еще, чтобы помочь.Bind JSON string to 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

Можете ли вы разместить JSON, который вы хотите поместить в datagrid? – jcvegan

+0

Добавлен вывод JSON – maltman

+1

Измените 'status' на' typeof (string) ' –

ответ

3

Если DataTable есть строки, то вы можете получить данные из JSON. Вы должны проверить, что не так с HTML-кодом gridview. Вы могли бы скопировать пасту с другой страницы, и значения полей все не так. Было бы полезно, если бы вы разместили код 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

Обновлен ответ на основе вашего gridview HTML. Добавлен атрибут datafield в ваш код gridview. –

+0

ничего себе. не могу поверить, что это было так просто. Спасибо. – maltman