【发布时间】:2019-01-24 17:16:15
【问题描述】:
我在下面有这段代码,我试图将数据 position and result 放入我的 searchlist 但是当我尝试将其放入代码中时 GridView1.DataSource = list; 它一直给我一个错误 System.InvalidOperationException: 'Data source is an invalid type. It must be either an IListSource, IEnumerable, or IDataSource.' 我试图完成什么是从Weather and coord 获取数据到我的gridview 中。我不确定为什么这种情况不断发生,任何帮助将不胜感激
public partial class WebForm1 : System.Web.UI.Page
{
public class Result
{
public string id { get; set; }
public string main { get; set; }
public string description { get; set; }
public string icon { get; set; }
}
public class SearchList
{
public Position coord { get; set; }
public int resultCount { get; set; }
public Result[] weather { get; set; }
}
public class Position
{
public double lon { get; set; }
public double lat { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string searchTerm = TextBox1.Text;
var webRequest = (HttpWebRequest)WebRequest.Create("http://api.openweathermap.org/data/2.5/weather?q="+Server.UrlEncode(searchTerm)+"&units=metric&APPID=*Removed*");
var webResponse = (HttpWebResponse)webRequest.GetResponse();
if (webResponse.StatusCode == HttpStatusCode.OK)
{
JavaScriptSerializer json = new JavaScriptSerializer();
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
string resString = sr.ReadToEnd();
SearchList list = json.Deserialize<SearchList>(resString);
GridView1.DataSource = list;
GridView1.DataBind();
}
else
Label1.Text =
"Invalid Response" ;
}
}
}
【问题讨论】:
-
你要清楚。网格中的数据应该是什么样子?
-
你想绑定什么?您需要更新您的问题才能更清楚。
-
如果我的假设是准确的,很可能您必须将该结果转换为投影以获得所需的结果,但您尚未阐明数据在网格中的样子跨度>
-
@Nkosi 我刚刚更新了我的问题
-
网格视图用于数据集合,但只有一个坐标。假设在网格中如何使用?
标签: c# json web-services