C# 自定义网格LINQ到SQL

C# 自定义网格LINQ到SQL,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,以下是我的自定义控件网格: public partial class LinqGrid : UserControl { object tmpDataTable = new object(); public LinqGrid() { InitializeComponent(); } public void Bind<T>(System.Data.Linq.Table<T>

以下是我的自定义控件网格:

public partial class LinqGrid : UserControl
{
        object tmpDataTable = new object();
        public LinqGrid()
        {
            InitializeComponent();
        }
        public void Bind<T>(System.Data.Linq.Table<T> listSource) where T : class
        {          
            Project.dbClassesDataContext dbc = new Project.dbClassesDataContext();
            tmpDataTable = listSource;
            var query = (from c in listSource select c);
            dgvRecords.DataSource = query.Take(10).ToList();
        }
        private void btnNext_Click(object sender, EventArgs e)
        {
// now what do I have to do here if I want next 10 records? I mean how to retrieve tmpDataTable object here? I can't find the type of variable.
        }
}
公共部分类LinqGrid:UserControl
{
对象tmpDataTable=新对象();
公共LinqGrid()
{
初始化组件();
}
公共void绑定(System.Data.Linq.Table listSource),其中T:class
{          
Project.dbClassesDataContext dbc=新项目.dbClassesDataContext();
tmpDataTable=listSource;
var query=(从listSource中的c选择c);
dgvRecords.DataSource=query.Take(10.ToList();
}
private void btnNext_单击(对象发送方,事件参数e)
{
//现在,如果我想要接下来的10条记录,我必须在这里做什么?我的意思是如何在这里检索tmpDataTable对象?我找不到变量的类型。
}
}

将您的类定义为:

public partial class LinqGrid<T> : UserControl where T : class, new()
{
        System.Data.Linq.Table<T> tmpDataTable;
        public LinqGrid()
        {
            InitializeComponent();
        }
        public void Bind(System.Data.Linq.Table<T> listSource)
        {          
            Project.dbClassesDataContext dbc = new Project.dbClassesDataContext();
            tmpDataTable = listSource;
            var query = (from c in listSource select c);
            dgvRecords.DataSource = query.Take(10).ToList();
        }
        private void btnNext_Click(object sender, EventArgs e)
        {
            tmpDataTable.Skip(10).Take(10); ....
        }
   }
public部分类LinqGrid:UserControl其中T:class,new()
{
System.Data.Linq.Table tmpDataTable;
公共LinqGrid()
{
初始化组件();
}
公共无效绑定(System.Data.Linq.Table listSource)
{          
Project.dbClassesDataContext dbc=新项目.dbClassesDataContext();
tmpDataTable=listSource;
var query=(从listSource中的c选择c);
dgvRecords.DataSource=query.Take(10.ToList();
}
private void btnNext_单击(对象发送方,事件参数e)
{
tmpDataTable.跳过(10).取(10)。。。。
}
}