このプロジェクトの Telerik DLL のバージョンは 2012.3.1016.40 です。
ASP.NET ページの 1 つで Telerik RadGrid を使用しています。Telerik RadGrid を ASP.NET DataTable オブジェクトにバインドします。また、クリックされた場合にページを閉じる ASP.NET ボタンもあります。
REST ベースの Web サービス メソッドを呼び出し、返されたデータを ASP.NET DataTable オブジェクトに入力します。
ASP.NET DataTable オブジェクトを Telerik RadGrid にバインドします。
ASP.NET DataTable オブジェクトは、OnNeedDataSource メソッドを使用して設定されます。
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 で Rebind を呼び出します。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 が提供する「ウォッチの追加」機能を使用しました。ポストバックでも、すべてに適切な値が設定されているようです。
ただし、PostBack で ASPX ページが読み込まれると、Telerik RadGrid が表示されなくなります。
PostBack で Telerik RadGrid が消えるのはなぜですか?