2012-10-30 5 views
2

SharePoint 사이트에서 이름이 "Empdetails"이고 열 (EmpName 문자열, Empaddress 문자열)이있는 목록이 있습니다.Webparts를 사용하여 SharePoint 2010의 SPgridview에서 편집, 삭제 및 업데이트 작업

목록 데이터를 편집, 삭제, 업데이트 기능이있는 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(); 
} 

답변

0

당신은 업데이트에 대한 모든 코드를 작성해야하고 삭제합니다. 자동으로 제공되지 않습니다.

개인적으로 직접 작성하지 않고 데이터 시트보기를 가리키는 목록보기 웹 파트를 개인적으로 사용하는 것이 좋습니다.

그러나 사용자 지정 코드를 작성해야하는 경우, 위의 코드는 다음에서 간단하게 할 수 있습니다

DataTable table = items.GetDataTable(); 
+0

감사합니다 ..하지만 난 내 작업을 달성하기 위해 아이디어를 얻을에 대한 참조 링크를 필요가 ... 나는 그것이 자동으로 제공되지 않았 음을 알고 ... 그게 이순신이 질문을 기록했다. – user1716577

+1

이 경우 더 구체적인 질문이 필요합니다. Stackoverflow는 질문과 답변을위한 것이지 프로젝트를 작성하는 것이 아닙니다. –

+0

완전한 코드가 필요하지 않습니다. 난 단지 지침을 그리드에 그리드를 구현하는 방법을 필요로 .so 그래서 내가 스택 오버플로에 대한이 질문을 게시 .. – user1716577

0

보호 무효를 Page_Load (개체를 보낸 사람, EventArgs입니다 전자 : 여기에

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(); 
} 

(0123) } } UR 코드

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(); 
    } 
}