【问题标题】:Edit,delete,update operations in SPgridview in sharepoint 2010 using Webparts使用 Webparts 在 sharepoint 2010 中的 SPgridview 中编辑、删除、更新操作
【发布时间】:2012-10-19 19:29:30
【问题描述】:

我的 SharePoint 网站中有一个名称为“Empdetails”并包含列(EmpName 字符串、Empaddress 字符串)的列表。

我必须将列表数据绑定到具有编辑、删除、更新功能的 SpGridview。

我能够成功地将列表数据绑定到gridview,但我无法为gridview 提供编辑、删除、更新功能。

代码:

private void binddata()
{
    SPWeb mySite = SPContext.Current.Web;
    SPList myList = mySite.Lists["Empdetails"];
    SPListItemCollection items = myList.Items;

    //Here we will make a datatable and we will put our list data to the data table
    DataTable table=new DataTable();
    table.Columns.Add("EmpName", typeof(string));
     table.Columns.Add("Empaddress", typeof(string));    

    // Create rows for each splistitem
    DataRow row;
    foreach (SPListItem result in items)
    {
        row = table.Rows.Add();
        row["EmpName"] = result["EmpName"].ToString();
        row["Empaddress"] = result["Empaddress"].ToString();

    }
    //binding data to gridview
    GridView1.DataSource = table.DefaultView;
    GridView1.DataBind();
}

【问题讨论】:

    标签: data-binding sharepoint-2010 spgridview


    【解决方案1】:

    您需要为更新和删除编写所有代码。它不是自动提供的。

    就个人而言,我建议使用指向数据表视图的现成列表视图 Web 部件,而不是尝试创建自己的。

    但如果你必须编写自定义代码,你上面的代码也许可以从这里简化:

    DataTable table = new DataTable();
    table.Columns.Add("EmpName", typeof(string));
    table.Columns.Add("Empaddress", typeof(string));    
    DataRow row;
    foreach (SPListItem result in items)
    {
        row = table.Rows.Add();
        row["EmpName"] = result["EmpName"].ToString();
        row["Empaddress"] = result["Empaddress"].ToString();
    }
    

    到这里:

    DataTable table = items.GetDataTable();
    

    【讨论】:

    • 感谢您的代码..但我需要任何参考链接来获得实现我的任务的想法...我知道它不是自动提供的...这就是易发布的这个问题..
    • 在这种情况下,您需要提出更具体的问题。 Stackoverflow 是用来提问和回答的,而不是为你编写项目。
    • 我不需要完整的代码。我只需要有关如何在 gridview 中实现凝乳操作的指导。所以这就是为什么我在堆栈溢出上发布了这个问题..
    【解决方案2】:

    protected void Page_Load(object sender, EventArgs e) { 如果(!IsPostBack) { 绑定数据(); } }

        public void Bindata()
        {
            SPWeb web = SPContext.Current.Web;
            SPList list = web.Lists["VisualWebpart"];
    
            DataTable dt = new DataTable();
            dt.Columns.Add("Title", typeof(string));
    
            foreach (SPListItem item in list.Items)
            {
                DataRow dr = dt.NewRow();
                dr["Title"] = item["Title"].ToString();
                dt.Rows.Add(dr);
            }
    
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
    
    
        protected void grd_Insert(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Insert")
            {
                SPWeb currentWeb = SPContext.Current.Web;
                SPList lst = currentWeb.Lists["VisualWebpart"];
                SPListItemCollection myColl = lst.Items;
                TextBox txtTitle = (TextBox)GridView1.FooterRow.FindControl("txtTitle");
                SPListItem item = myColl.Add();
                item["Title"] = txtTitle.Text;
    
                item.Update();
                txtTitle.Text = "";
                Bindata();
             }
    
        }
    
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
    
            GridView1.EditIndex = e.NewEditIndex;
            Bindata();
         }
    
    
        protected void GridView1_Cancel(object sender, GridViewCancelEditEventArgs e)
        {
    
            GridView1.EditIndex = -1;
            Bindata();
        }
    
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
    
            GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
            int Title = row.DataItemIndex;
    
            SPWeb currentWeb = SPContext.Current.Web;
            SPList lst = currentWeb.Lists["VisualWebpart"];
            SPListItemCollection myColl = lst.Items;
            int itemcount = myColl.Count;
    
    
            for (int i = 0; i <= itemcount-1; i++)
            {
                SPListItem item = myColl[i];
                if (Title==i)
                {
                    myColl.Delete(i);
                }
            }
    
            Bindata();
    
        }
    
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
            int Title = row.DataItemIndex;
    
            SPWeb currentWeb = SPContext.Current.Web;
            SPList lst = currentWeb.Lists["VisualWebpart"];
            SPListItemCollection myColl = lst.Items;
            int itemcount = myColl.Count;
            TextBox txtTit = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtTit");
    
    
            string d = txtTit.Text;
    
            for (int i = 0; i <= itemcount - 1; i++)
            {
                SPListItem item = myColl[i];
                if (Title == i)
                {
                    item["Title"] = d;
                    item.Update();
    
                }
            }
            GridView1.EditIndex = -1;
            Bindata();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-23
      • 1970-01-01
      • 2011-10-31
      • 2011-01-21
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      相关资源
      最近更新 更多