私はレコードのリストを表示するためのTelerik Gridview
を使用していますが、私はこのすべてのページに(いくつかのマイナーな変更で)貼り付け、この次のような共通のイベントコードをコピーして、このGridViewコントロールを使用していますれている以上10ページありますtelerikグリッドビューの一般的なメソッドをすべての子ページから親ページから呼び出すように委譲するにはどうすればよいですか?
protected void Page_Load(object sender, EventArgs e)
{
DisplayRecords()
}
public void DisplayRecords()
{
//Grid view names are different on different pages.
GridView1.DataSource=Fetching records from database.
GridView1.DataBind();
}
protected void GridView1_SortCommand(object sender, GridSortCommandEventArgs e)
{
DisplayRecords()
}
protected void GridView1_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
var index = e.NewPageIndex;
DisplayRecords()
}
protected void GridView1_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
{
var size = e.NewPageSize;
DisplayRecords()
}
をだから私はこのParentPageページにすべてのこのイベントを配置し、ちょうどすべての子PAGから呼び出すことができ、この可能です public partial class LoadSettings : ParentPage
{
//Load events and other events
}
[Serializable]
public class ParentPage: RadAjaxPage
{
}
Page 1:**ttt.aspx**
public void DisplayRecords()
{
//Grid view names are different on different pages.
GridView1.DataSource=this.GetAlltttData()
GridView1.DataBind();
}
public DataTable GetAlltttData()
{
using (var context = new MyDataContext())
{
var data = from c in context.ttt select c;
return MyDataContext.LINQToDataTable(data);
}
}
Page 2:**bbb.aspx**
public void DisplayRecords()
{
//Grid view names are different on different pages.
GridView1.DataSource=this.GetAllbbbData()
GridView1.DataBind();
}
public DataTable GetAllbbbData()
{
using (var context = new MyDataContext())
{
var data = from c in context.bbb select c;
return MyDataContext.LINQToDataTable(data);
}
}
protected void rgbbb_SortCommand(object sender, GridSortCommandEventArgs e)
{
DisplayRecords()
}
protected void rgbbb_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
var index = e.NewPageIndex;
DisplayRecords()
}
protected void rgbbb_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
{
var size = e.NewPageSize;
DisplayRecords()
}
:
は、これは以下のページから継承私の1ページです私のすべてのページをこのイベントで汚染するのではなく、e?
注:私のページのいくつかでは、このDisplayRecords方法はいくつかのパラメータが含まれていますが、すべてのイベントがちょうど共通して休むことができます。
このコントロールを含むマスターページを作成できませんか?親ページクラスを使用してそれを行うこともできますが、 'Init'イベントの親コントロールにコントロールを動的に追加する必要がありますので、ライフサイクルはまだ有効です。 – Luizgrs
@Luizgrs:グリッド定義のためにマスターページに保持できませんすべてのページで異なるので、どのように私はそれを維持するので、私はマスターページソリューションが良いとは思わない。 –
Masterpagesは "連鎖"することができます。メインページを使用するanoterのmasterpageを持つことができます。この10ページのみがこの2番目のマスターページを使用します。 – Luizgrs