更改日期参数后,radGrid控件显示空白网格

时间:2013-04-05 14:33:32

标签: asp.net data-binding telerik radgrid

我搜索了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()时,代码通过if语句循环进入RadGrid1_ItemCreated循环几次,它们进入if语句,来自函数,然后调用btnSubmit的catch语句,它显示错误消息“列ID不属于表表”。

有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:2)

也许你应该试试Grid - Simple Data Binding。此外,您在telerik论坛上的这个帖子(RadGrid NeedDataSource Page load)详细讲述了简单数据绑定。我不知道您是否正在尝试使用NeedDataSource,但之前我遇到过类似的问题,而且Simple Data绑定工作得非常完美。

答案 1 :(得分:0)

这听起来对我来说,你需要在某处调用RadGrid1.Rebind()。尝试在btnSubmit_OnClick中的try块中调用最后一行。

此外,此搜索按钮有什么作用?它是否根据日期过滤结果?