BTC USD 80,209.6 Gold USD 4,378.12
Time now: Jun 1, 12:00 AM

Jom sharing! Sharepoint development.

xda update ka wey?
aku ada menda nak share tp x sempat nak online skrg...
mcm besa aku banyak main custom function, nnt aku share...
 
Share la sket project korang tu..... :mad:

I manage to create a custom C# code. Now user can browse & import the data from excel to sharepoint list, no need to use copy paste into edit datasheet! :)paid:)paid:)paid

You need to use this on the page ;

<asp:FileUpload ID="FileUploadExcel" runat="server" />

The code file is ;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public void ButtonImportData_Click(object sender, EventArgs e)
{
try
{
if ((FileUploadExcel.HasFile))
{
ButtonUploadFile.Visible = false;
ButtonImportData.Visible = false;
OleDbConnection conn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
string query = null;
string connString = "";
string strFileName = DateTime.Now.ToString("ddMMyyyy_HHmmss");
string strFileType = System.IO.Path.GetExtension(FileUploadExcel.FileName).ToString().ToLower();

if (strFileType == ".xls" || strFileType == ".xlsx")
{
int i = 0;
//Need to do something here, you can set it to check file format before proceed!
i++;
}

if (strFileType.Trim() == ".xls")
{
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileUploadExcel.PostedFile.FileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
}
else if (strFileType.Trim() == ".xlsx")
{
connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileUploadExcel.PostedFile.FileName + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
}

query = "SELECT * FROM [Sheet1$]";

conn = new OleDbConnection(connString);

if (conn.State == ConnectionState.Closed) conn.Open();

cmd = new OleDbCommand(query, conn);
da = new OleDbDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds);

System.Data.DataSet myDataSet = new DataSet();
System.Data.DataTable sheetData = new System.Data.DataTable("ExcelInfo");
da.Fill(sheetData);

myDataSet.Tables.Add(sheetData);

foreach (System.Data.DataTable thisTable in myDataSet.Tables)
{
foreach (DataRow myRow in thisTable.Rows)
{
SPSite spSite = new SPSite("http://isaa/EAR/default.aspx");
SPWeb spWeb = spSite.OpenWeb();
SPList spTarget = spWeb.Lists["TestCopyMove"];
SPListItemCollection spTargetItemCollection = spTarget.Items;

{
spWeb.AllowUnsafeUpdates = true;

if (!thisTable.Rows.Count.Equals(0))
{
SPListItem spTargetItem;
spTargetItem = spTarget.Items.Add();

try
{
if (thisTable.Columns[0] != null)
spTargetItem["Title"] = myRow[0].ToString();
else
spTargetItem["Title"] = null;
}

catch (Exception ex)
{
Response.Write(ex.Message + "Error at Title<BR>");
}

if (thisTable.Columns[1] != null)
{
string dtRatingDate = myRow[1].ToString();
DateTime RatingDate = DateTime.Parse(dtRatingDate);
spTargetItem["Birthday"] = RatingDate;
}
else
spTargetItem["Birthday"] = null;

try
{
if (thisTable.Columns[2] != null)
spTargetItem["Race"] = myRow[2].ToString();
else
spTargetItem["Race"] = null;
}

catch (Exception ex)
{
Response.Write(ex.Message + "Error at Race<BR>");
}

try
{
if (thisTable.Columns[3] != null)
spTargetItem["Gender"] = myRow[3].ToString();
else
spTargetItem["Gender"] = null;
}

catch (Exception ex)
{
Response.Write(ex.Message + "Error at Gender<BR>");
}

try
{
if (thisTable.Columns[4] != null)
{
string currVal = myRow[4].ToString();
Decimal NewcurrVal = Decimal.Parse(currVal);
spTargetItem["Saving"] = NewcurrVal.ToString("#,##0.00");
}
else
spTargetItem["Saving"] = null;
}

catch (Exception ex)
{
Response.Write(ex.Message + "Error at Saving<BR>");
}

spTargetItem.Update();
}
spWeb.AllowUnsafeUpdates = false;
}
}
}

LabelUpload.Visible = true;
LabelUpload.ForeColor = System.Drawing.Color.Green;
LabelUpload.Text = "<b>File Name :</b> " + FileUploadExcel.PostedFile.FileName + "<br>" + "<b>File Type :</b> " + FileUploadExcel.PostedFile.ContentType + "<br>" + "<b>File Size :</b> " + FileUploadExcel.PostedFile.ContentLength + " kb<br><br><b>Successfully Import All Data From This File To Sharepoint List!</b>";

lblMessage.Text = "<BR>Data Retrieved Successfully! Total Available Records:" + ds.Tables[0].Rows.Count;
lblMessage.ForeColor = System.Drawing.Color.Green;
lblMessage.Visible = true;

da.Dispose();
conn.Close();
conn.Dispose();
}
else
{
ButtonUploadFile.Visible = false;
lblMessage.Text = "No file selected!";
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Visible = true;
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
lblMessage.Text = "Only excel files allowed";
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Visible = true;
Response.Write("<script>if(!window.alert('Wrong file format detected! Please try again!')){window.location.href='http://isaa/EAR/_layouts/TEST2/importexcel.aspx'}</script>");
return;
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This is fuc-king bas-tard code I manage to create...:mad::mad::mad:
Hope it can help you in the future.

Pueh hati aku boleh wat code ni, aku refer dlm tenet code depa pendek2 ja tapi yg aku mcm syiallll panjang, maybe x flexible sangat tapi janji boleh pakai & matlamat tercapai pun dah cukup bagi aku, maybe korang kena wat clean up sket untuk sesuaikan ngan project korang...:)):)):))

Yang ni pun dah ada upgrade, kalu sapa2 berminat kasitau nnt aku tempek...
 
Last edited:
as salam,

lame giler x bukak thread nie...

aku nk share code aku tuk cek id...

sblm ni bro mutanic dh wat dlm bentuk c#...

ari ni aku nk share code yg same dlm bentuk

jquery plak (saje nk test gne spservices kt dlm sp 2010).. :)
 
code die cengginie :

Code:
    $(document).ready(function () {

        $().SPServices({
            operation: "GetGroupCollectionFromUser",
            userLoginName: $().SPServices.SPGetCurrentUser(),
            async: false,
            completefunc: function (xData, Status) {
                                             
            if ($(xData.responseXML).find("Group[Name='<<nama group korang>>']").length == 1  {
                    //alert('User in a group 1');
            }

            else if $(xData.responseXML).find("Group[Name='<<nama group korang yang ke 2>>']").length == 1  {
                    //alert('User in a group 2');
            }

			else  {
                    //alert('User in a group 3');
			}
        });
    });

cara nk gne :

1. paste jek code tu kt dlm aspx korang... (x yah nk ubah web config)

2. siap dh...

* dari segi sekuriti, x bape digalakkan sgt... sbb hacker bole view name2 group korang tu... :) *
 
Last edited:
code die cengginie :

Code:
    $(document).ready(function () {

        $().SPServices({
            operation: "GetGroupCollectionFromUser",
            userLoginName: $().SPServices.SPGetCurrentUser(),
            async: false,
            completefunc: function (xData, Status) {
                                             
            if ($(xData.responseXML).find("Group[Name='<<nama group korang>>']").length == 1  {
                    //alert('User in a group 1');
            }

            else if $(xData.responseXML).find("Group[Name='<<nama group korang yang ke 2>>']").length == 1  {
                    //alert('User in a group 2');
            }

			else  {
                    //alert('User in a group 3');
			}
        });
    });

cara nk gne :

1. paste jek code tu kt dlm aspx korang... (x yah nk ubah web config)

2. siap dh...

* dari segi sekuriti, x bape digalakkan sgt... sbb hacker bole view name2 group korang tu... :) *

TQ bro, nnt aku try godek2 code ni...:)paid

* jQuery best!!!:)cgrock:)cgrock:)cgrock
 
Minta tolong check jap apa yang x kena...code xda error tapi bila nak execute ja dpt error plak...aku dah pening ni... ~X(~X(~X(

Ni contoh code (C# .Net) ::-?

public void btnSubmit_Click(object sender, EventArgs e)
{
using (SPSite spSite = SPContext.Current.Site)
{
using (SPWeb spWeb = spSite.OpenWeb())
{
spWeb.AllowUnsafeUpdates = true;
SPList list = SPContext.Current.Web.Lists["Conventional - BC To Update"];
SPListItemCollection itemCollection;
SPQuery query = new SPQuery();
query.Query="<Query><Where><Eq><FieldRef Name='ID' /><Value Type='Counter'> + strID + </Value></Eq></Where></Query>";
itemCollection = list.GetItems(query);

if(itemCollection.Count > 0)
{
SPListItem item = itemCollection[Convert.ToInt32(strID)];
try //sample try run untuk 3 column dulu
{
item["Customer Name"] = txtCustomer.Text;
}
catch(Exception ex)
{
Response.Write("Error at : " + ex + "<BR>");
}

try
{
item["Business Centre"] = ddlBC.SelectedItem.Text;
}
catch (Exception ex)
{
Response.Write("Error at : " + ex + "<BR>");
}

try
{
item["Relationship Manager"] = txtOIC.Text;
}
catch (Exception ex)
{
Response.Write("Error at : " + ex + "<BR>");
}
item.Update();
}
spWeb.AllowUnsafeUpdates = false;
}
}
}

Ni error yang aku dpt ::mad:

Invalid data has been used to update the list item. The field you are trying to update may be read only. at Microsoft.SharePoint.Library.SPRequestInternalClass.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish)
at Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish)
 
Sharepoint : A Control To Filter Sharepoint List Data

Aku berjaya create control untuk Sharepoint list, menda ni akan filter information base on user group/id. Korang boleh customize & jangan lupa share korang nyer modification.:)paid:)cgrock

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using System.Web.UI;

public partial class IDCheck : System.Web.UI.UserControl
{
public void Page_Load(object sender, EventArgs e)
{
using (SPSite spSite = SPContext.Current.Site)
{
using (SPWeb spWeb = spSite.OpenWeb())
{
spWeb.AllowUnsafeUpdates = true;
SPUser spUser = spWeb.CurrentUser;
SPGroupCollection spGroups = spUser.Groups;
SPList spList = spWeb.Lists["My List"];

string groups = "";

foreach (SPGroup spGroup in spGroups)
{
groups = groups + spGroup.Name.ToString() + "; ";
}

//if (groups.Contains("Admin"))
//{
//DO SOMETHING!
//Response.Redirect("https://www.mysite.cimb.com/mysubsite/Lists/mylist/AllItems.aspx");
//}
//else
if (groups.Contains("Approver"))
{
//DO SOMETHING!
string query = "<Query><Where><Eq><FieldRef Name='Status' /><Value Type='Choice'>Waiting Approval</Value></Eq></Where></Query>";
SPViewCollection spItemCollection = spList.Views;
for (int i = 0; i < spItemCollection.Count; i++)
{
SPView spView = spItemCollection;
spView.Query = query;
spView.Update();
}
}
else
if (groups.Contains("Verifier"))
{
//DO SOMETHING!
string query = "<Query><Where><Eq><FieldRef Name='Status' /><Value Type='Choice'>Waiting Verification</Value></Eq></Where></Query>";
SPViewCollection spItemCollection = spList.Views;
for (int i = 0; i < spItemCollection.Count; i++)
{
SPView spView = spItemCollection;
spView.Query = query;
spView.Update();
}
}
else
if (groups.Contains("User"))
{
//DO SOMETHING!
string query = "<Where><Or><Eq><FieldRef Name='Status' /><Value Type='Choice'>Rejected</Value></Eq><Eq><FieldRef Name='Status' /><Value Type='Choice'>Not Updated Yet</Value></Eq></Or></Where>";
SPViewCollection spItemCollection = spList.Views;
for (int i = 0; i < spItemCollection.Count; i++)
{
SPView spView = spItemCollection;
spView.Query = query;
spView.Update();
}
}
//else
//{
//DO SOMETHING!
//Response.Write("<br><br><br><br><br><br><br><br><br><center><b><big><big><big><big><big>You are not authorized to access this page!</big></big></big></big></big></b></center>");
//Response.Write("<br><br><br><center><b>Click OK to go back to where you start!</center></b></br></br></br>");
//Response.Write("<script>if(!window.alert('Access denied!')){window.location.href='https://www.mysite.com/mysubsite/default.aspx'}</script>");
//Response.End();
//}
spWeb.AllowUnsafeUpdates = false;
}
}
}
}
 
Back
Top
Log in Register