我这里有一个方法是写linq语句返回 IQueryable<object>的,
IQueryable<object> getSelect(studentsDataContext stuContext)
{
return from u in stuContext.StuInfo
join cs in stuContext.ClassInfo
on u.ClassId equals cs.ClassId
//这里是多条件查询的,我想把这个放到外面
where (string.IsNullOrEmpty(this.name.Text) ? true : u.Name.Contains(this.name.Text.ToString().Trim())
) && (string.IsNullOrEmpty(this.a_ai.Text) ? true : u.Hobby.Contains(this.a_ai.Text.ToString().Trim())
)
select new
{
编号 = u.StuID,
姓名 = u.Name,
性别 = u.Sex,
爱好 = u.Hobby,
年龄 = u.Age,
班级 = u.ClassInfo.ClassName,
};
}
//比如放在这里如果返回的是 var 或者 IQueryable<StuInfo>
我可以这样写 list.Where(c=>c.年龄 >0)
IQueryable<object> list = getSelect(stuContext);
但是object就拿不到年龄,我盖怎么做
//这是分页的调用方法
this.Label1.Text = pageHelp.GetPageNum(this.GridView1, pagesize, list);
//这是分页的方法
public static string ShowPageNavigate(GridView GridViewName, int PageIndex, int PageSize, int total)
{
//获取跳转的绝对路径
string redirectTo = HttpContext.Current.Request.CurrentExecutionFilePath;
PageSize = PageSize == 0 ? 5 : PageSize;//默认显示五条数据
//总页数:总记录数据/显示条数
int totalpages = Math.Max((total + PageSize - 1) / PageSize, 1);
//创建stringBuilder添加a标签
StringBuilder sb = new StringBuilder();
if (totalpages >= 1)
{
if (PageIndex != 1) //首页
sb.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1'>首页</a>", redirectTo);
else
sb.Append("<span class='pageLink'>首页</span>");
if (PageIndex > 1)//上一页
sb.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}'>上一页</a>", redirectTo, PageIndex - 1);
else
sb.Append("<span class='pageLink'>上一页</span>");
int start = (PageIndex - 5) < 1 ? 1 : (PageIndex - 5);//计算起始位置.要求页面上显示10个数字页码.
int end = start + 9;//计算终止位置.
if (end > totalpages)
{
end = totalpages;
//重新计算一下Start值.
start = end - 9 < 1 ? 1 : end - 9;
}
//一共最多显示十页
for (int i = start; i <= end; i++)
{
if (i == PageIndex)
sb.AppendFormat("<span class='pageLink'>{0}</span>", i);
else
sb.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}'>{2}</a>", redirectTo, i, i);
}
if (PageIndex < totalpages)//下一页
sb.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}'>下一页</a>", redirectTo, PageIndex + 1);
else
sb.Append("<span class='pageLink'>下一页</span>");
if (PageIndex != totalpages) //尾页
sb.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}'>尾页</a>", redirectTo, totalpages);
else
sb.Append("<span class='pageLink'>尾页</span>");
//统计
sb.AppendFormat("<span class='pageLink'>第{0}页 / 共{1}页</span>", PageIndex, totalpages);
}
return sb.ToString();
}
还是别用object 我觉得还是自己定义一个要输出的类比较好