我们项目的 Telerik DLL 版本是 2012.3.1016.40
我们在我们的 ASP.NET 页面之一中使用 Telerik RadGrid。我们将 Telerik RadGrid 绑定到 ASP.NET DataTable 对象。我们还有一个 ASP.NET 按钮,如果它被点击就关闭页面。
我们调用基于 REST 的 Web 服务方法,并使用返回的数据填充 ASP.NET DataTable 对象。
我们将 ASP.NET 数据表对象绑定到 Telerik RadGrid。
使用 OnNeedDataSource 方法填充 ASP.NET DataTable 对象。
protected void commentRadGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
try
{
// The ViewStateThreadedDiscussion has a Type of ASP.NET DataTable.
// Blah Blah Code That Populates the ViewStateThreadedDiscussion DataTable Blah Blah
commentRadGrid.DataSource = new string[] { };
if (ViewStateThreadedDiscussion == null)
{
// Extremely Important to use empty string double quotes if
// the threadedDiscussionWithinDataTable DataTable is null because
// Telerik only works properly if you assign the Telerik RadGrid DataSource
// to an empty string with double quotes when we have a DataTable variable that is null.
// Never assign null to the Telerik RadGrid DataSource because Telerik DLL throws Error.
commentRadGrid.DataSource = "";
}
else
{
commentRadGrid.DataSource = ViewStateThreadedDiscussion;
}
} // end of try
catch (Exception ex)
{
log4NetInstance.Error(ex.Message);
log4NetInstance.Error(ex.StackTrace);
log4NetInstance.Error(ex.ToString());
} // end of catch (Exception ex)
} // end of protected void SharedWithRadGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
我有一个指定了 OnClick 方法的 Telerik RadButton。在 Telerik RadButton OnClick 方法中,我在 Telerik RadGrid 上调用了重新绑定。这是 Telerik RadButton OnClick 方法代码:
protected void OlderCommentsButton_Click(object sender, EventArgs e)
{
try
{
commentRadGrid.Rebind();
}
catch (Exception ex)
{
log4NetInstance.Error(ex.Message);
log4NetInstance.Error(ex.StackTrace);
log4NetInstance.Error(ex.ToString());
} // end of catch (Exception ex)
} // end of protected void OlderCommentsButton_Click(object sender, EventArgs e)
这是我对 Telerik RadGrid 的声明和配置:
<telerik:RadGrid runat="server" Width="60%" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Top" HeaderStyle-Width="60%" ID="commentRadGrid" AllowFilteringByColumn="true" AutoGenerateColumns="false"
AllowPaging="true" OnPageIndexChanged="commentRadGrid_PageIndexChanged" OnNeedDataSource="commentRadGrid_NeedDataSource" PageSize="100" Skin="Default" AllowSorting="true" AutoPostBack="true" ShowStatusBar="true" AllowCustomPaging="True"
GridLines="none">
我有 Visual Studio 2012,我在带有断点的调试模式下运行应用程序。我对各种变量(如 ViewStateThreadedDiscussion ASP.NET DataTable 和 Telerik RadGrid DataSource 属性)使用了 Visual Studio 2012 提供的“添加观察”功能。即使在 Post Back 上,所有内容似乎都填充了正确的值。
但是,当在 PostBack 上加载 ASPX 页面时,Telerik RadGrid 会消失。
为什么 Telerik RadGrid 在 PostBack 上消失了?