我搜索了 SO、google 和 Telerik 论坛,但找不到解决方案。
我有一个现有应用程序(由以前的开发人员编写)正在调用填充 RadGrid 控件的存储过程。它第一次填充得很好。
但是,当我更改日期参数时,单击“搜索”按钮,我得到一个空白的 RadGrid 控件。当我第二次单击搜索时,会填充网格。当我浏览代码时,我收到一条错误消息
列“ID”不属于表 Table。
如何解决必须单击两次搜索才能显示数据的问题?
我背后的代码是:
protected void btnSubmit_OnClick(object sender, EventArgs e)
{
try
{
ViewState["newset"] = null;
CreateDatasource();
this.RadGrid1.DataBind();
this.RadGrid1.CurrentPageIndex = 0;
ViewState["newset"] = "new";
string idex = this.hdnindex.Value;
if (idex != string.Empty)
this.RadGrid1.MasterTableView.Items[int.Parse(idex)].Selected = true;
}
catch (Exception ex) {
this.lblMessage.Text = ex.Message;
}
}
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
try
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
HyperLink hLink = (HyperLink)item["ViewHyperLink"].Controls[0];
if (hLink != null)
hLink.Attributes.Add("onclick", "selectMe('" + item.ItemIndex + "');");
}
}
catch (Exception ex)
{
this.lblMessage.Text = ex.Message;
}
}
在上面后面的代码中,当 this.RadGrid1.DataBind() 被调用时,代码会RadGrid1_ItemCreated
通过几次 if 语句进入循环,它们进入 if 语句,退出函数,然后是 btnSubmit 的 catch 语句调用,显示错误信息“列ID不属于表Table”。
关于如何解决这个问题的任何想法?