ObjectDataSource +GridView

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" />--%>
       
            <asp:Parameter Name="o" Type="Object" />
 
 
然后就可以把 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>
原文地址:https://www.cnblogs.com/guohuiru/p/3108377.html