【问题标题】:radGrid control displays blank grid after date parameter is changedradGrid 控件在更改日期参数后显示空白网格
【发布时间】:2013-04-05 14:33:32
【问题描述】:

我搜索了 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”。

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 出现这样的异常消息,听起来RadGrid和数据源之间存在绑定问题。
  • 感谢您的回复。您能否对此进行扩展(或有任何建议)?我已经尝试了几乎所有我能想到的绑定方式。
  • 您能否包括您的存储过程和填充 RadGrid 的逻辑?
  • 另一件事:GridHyperlinkColumn 似乎存在一些问题,在使用某些特定版本的 RadControls 重新绑定时神秘地抛出此错误。不确定这是否适用于您的场景,但线程是 here

标签: asp.net data-binding telerik radgrid


【解决方案1】:

也许你应该试试Grid - Simple Data Binding。另外,telerik 论坛上的这个线程 (RadGrid NeedDataSource Page load) 详细讨论了简单数据绑定。我不知道您是否正在尝试使用 NeedDataSource,但我之前也遇到过类似的问题,并且 Simple Data 绑定工作得很好。

【讨论】:

    【解决方案2】:

    在我看来,您确实需要在某处调用 RadGrid1.Rebind()。尝试在 btnSubmit_OnClick 内的 try 块中的最后一行调用它。

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

    【讨论】:

    • 尝试您的建议后没有运气。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2020-04-05
    相关资源
    最近更新 更多