我无法将数据从Web服务绑定到Web应用程序的网格视图中。
错误:
在容器中找不到数据项。容器必须实现IDataItemContainer,或具有一个名为DataItem的属性。
这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ddlEvent.DataSource = en.getCategory();
ddlEvent.DataTextField = "category";
ddlEvent.DataValueField = "categoryId";
ddlEvent.DataBind();
}
}
protected void ddlEvent_SelectedIndexChanged(object sender, EventArgs e)
{
eventView.DataSource = en.getEvent(ddlEvent.SelectedValue.ToString());
eventView.DataBind();
}
getEvent方法需要一个字符串参数来检索特定字段上的数据。对于ddlEvent的DataValueField,只有1、2和3。
这是我的网络服务:
http://b0ac8787bb664948b10d5374441ce99d.cloudapp.net/MQEntertainment.asmx
问题出在网络服务中,我在getEvent方法中输入了参数“ 1”,但确实有输出。但是,当将其调用到我的Web应用程序中时,将显示错误。
我试图用字符串“ 1”替换“ ddlEvent.SelectedValue.ToString()”,但有输出。我尝试使用“ Trim()”,但它完全没有帮助。
请帮助我,在此先感谢。
附言:如果我错过任何相关信息,请告诉我。
getEvent
eventList[]
根据Web服务返回。问题是返回的eventList[]
可能包含一些null元素,因此您必须在绑定到之前先删除这些null元素eventView
。该代码对我有用:
protected void ddlEvent_SelectedIndexChanged(object sender, EventArgs e)
{
eventList[] events = en.getEvent(ddlEvent.SelectedValue);
eventView.DataSource = events.Where(x => x != null);
eventView.DataBind();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句