ObjectDataSource +GridView
的使用objectDataSource和GridView实现绑定数据和分页的以及删除时候注意点
1,ObjectDataSource 配置数据源
2.选择相应的业务层
3.选择相应的方法
如分页方法
4.如果需要给分页配置参数可先省略(后面配置)
5.在ObjectDataSource 属性的分页项设置如图(名字要和方法参数名字一致)
这个值是获得数据总条数的方法名字(没有括号)
这时还有两个参数没有配置
一个是排序方法:
SortedBY 一个是o
在ObjectDataSource 属性数据里面有一个
还有一个参数o,需在后台代码里配置
protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
//(int startIndex, int pageSize, string sortedBy, dbo_user o
dbo_user o = new dbo_user();
o.sex = "0";
e.InputParameters[0] = o;
}
在GirdView里面设置相应的值
如果参数配置错误的话会提示:ObjectDataSource“ObjectDataSource1”未能找到带参数的非泛型方法“GetUsersCount”: startIndex, pageSize, sortedBy, o。
另外,还要把页面中ObjectDataSource的参数注释掉
<SelectParameters>
<%-- <asp:Parameter Name="startIndex" Type="Int32" />
<asp:Parameter Name="pageSize" Type="Int32" />
<asp:Parameter Name="sortedBy" Type="String" />--%>
然后就可以把 ObjectDataSource 和GridView配置到一起了
选中GridView控件,控件右上角有一个箭头 点击箭头,选择配置数据源,选择ObjectDataSource1,启用分页,删除
在后台对他们进行绑定
protected void Page_Load(object sender, EventArgs e)
{
GridViewHelper.InitDefaultGridViewEvent(GridView1, ObjectDataSource1);
GridView1.PageIndex = 0;
GridView1.DataSourceID = ObjectDataSource1.ID;
GridView1.DataBind();
GirdView删除
当GirdView启用删除的时候,要把属性->数据->DataKeyNames id设为主键
而且在objectDataSource里的事件里的Deleteing事件激活
实现
protected void ObjectDataSource1_Deleting(object sender, ObjectDataSourceMethodEventArgs e)
{
IDictionary parmsFormPage=e.InputParameters;
if (parmsFormPage["id"]!=null)
{
dbo_user o = new dbo_user();
o.id = parmsFormPage["id"].ToString();
parmsFormPage.Clear();
parmsFormPage.Add("o",o);
}
}
GirdView编辑:
这里我是用编号,点击编号弹出一个窗体,里面是修改内容页
<asp:TemplateField HeaderText="编号" SortExpression="id" >
<ItemTemplate>
<a href="javaScript:void(0);" onclick="editCust('<%#Eval("id") %>');"><%#Eval("id") %></a>
</ItemTemplate>
</asp:TemplateField> 实现
<script type="text/javascript">
function editCust(id) {
var url = "../AddUser.aspx";
if (typeof (id) != undefined && id != null && id != "") {
url = url + '?id=' + id;
}
alert(url);
openBrWindow(url, '_blank', 'width=655,height=320,resizable=yes');
}
</script>