我无法将网络服务中的数据绑定到我的网络应用程序的网格视图中。
错误:
在容器中找不到数据项。容器必须实现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
问题在于Web服务,我在getEvent方法中输入参数'1',我确实有输出。但是当它被调用到我的Web应用程序中时,会显示错误。
我试图用字符串“1”替换“ddlEvent.SelectedValue.ToString()”,有一个输出。我尝试使用“Trim()”但它根本没用。
请提前帮助我。
P.S。如果我遗漏任何相关信息,请告诉我。
答案 0 :(得分:0)
getEvent
根据网络服务返回eventList[]
。问题是返回的eventList[]
可能包含一些null元素,因此您必须在绑定到eventView
之前先删除null元素。这段代码适合我:
protected void ddlEvent_SelectedIndexChanged(object sender, EventArgs e)
{
eventList[] events = en.getEvent(ddlEvent.SelectedValue);
eventView.DataSource = events.Where(x => x != null);
eventView.DataBind();
}