天天看點

SharePoint 圖檔庫操作

SharePoint 圖檔庫操作

using  System;

SharePoint 圖檔庫操作

using  System.Data;

SharePoint 圖檔庫操作

using  System.Configuration;

SharePoint 圖檔庫操作

using  System.Collections;

SharePoint 圖檔庫操作

using  System.Web;

SharePoint 圖檔庫操作

using  System.Web.Security;

SharePoint 圖檔庫操作

using  System.Web.UI;

SharePoint 圖檔庫操作

using  System.Web.UI.WebControls;

SharePoint 圖檔庫操作

using  System.Web.UI.WebControls.WebParts;

SharePoint 圖檔庫操作

using  System.Web.UI.HtmlControls;

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

using  System.IO;

SharePoint 圖檔庫操作

using  Microsoft.SharePoint;

SharePoint 圖檔庫操作

using  yesinda.yesindakms.sharepoint;

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

public   partial   class  usercontrol_ImageList : System.Web.UI.UserControl

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

... {

SharePoint 圖檔庫操作

    public string ReturnValue = String.Empty;

SharePoint 圖檔庫操作

    public string FolderPath = "111";

SharePoint 圖檔庫操作

    protected void Page_Load(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        if (!IsPostBack)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            GetFolder();

SharePoint 圖檔庫操作

            BindGrid();

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    /// <summary>

SharePoint 圖檔庫操作

    /// 建立資料源

SharePoint 圖檔庫操作

    /// </summary>

SharePoint 圖檔庫操作

    /// <returns></returns>

SharePoint 圖檔庫操作

    ICollection CreateDataSource()

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        DataTable dt = new DataTable();  //建立一個名為mytable的DataTable對象形

SharePoint 圖檔庫操作

        DataColumn dc = new DataColumn();         //建立一個列對象

SharePoint 圖檔庫操作

        dc.DataType = System.Type.GetType("System.Int32");  //指定該列的資料類型

SharePoint 圖檔庫操作

        dc.AutoIncrement = true;              //該列為自動增漲列

SharePoint 圖檔庫操作

        dc.AutoIncrementSeed = 1;          //初始值

SharePoint 圖檔庫操作

        dc.AutoIncrementStep = 2;          //增量

SharePoint 圖檔庫操作

        dc.Caption = "id";                     //設定列的标題

SharePoint 圖檔庫操作

        dc.ColumnName = "序号";       //設定 列集合對象中的列的名稱,datagrid中顯示該列名.

SharePoint 圖檔庫操作

        dc.Unique = true;                      //為此列建立唯一性約

SharePoint 圖檔庫操作

        dc.AllowDBNull = false;           //不允許為空

SharePoint 圖檔庫操作

        dt.Columns.Add(dc);              //将該列對象加入到表mytable的列集合中

SharePoint 圖檔庫操作

        //普通列

SharePoint 圖檔庫操作

        DataColumn dc1 = new DataColumn();

SharePoint 圖檔庫操作

        dc1.DataType = System.Type.GetType("System.String");

SharePoint 圖檔庫操作

        dc1.AllowDBNull = false;

SharePoint 圖檔庫操作

        dc1.Caption = "path";

SharePoint 圖檔庫操作

        dc1.ColumnName = "路徑";

SharePoint 圖檔庫操作

        dc1.DefaultValue = 25;

SharePoint 圖檔庫操作

        dt.Columns.Add(dc1);

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        DataColumn dc2 = new DataColumn();

SharePoint 圖檔庫操作

        dc2.DataType = System.Type.GetType("System.String");

SharePoint 圖檔庫操作

        dc2.AllowDBNull = false;

SharePoint 圖檔庫操作

        dc2.Caption = "path";

SharePoint 圖檔庫操作

        dc2.ColumnName = "完整路徑";

SharePoint 圖檔庫操作

        dc2.DefaultValue = 25;

SharePoint 圖檔庫操作

        dt.Columns.Add(dc2);

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        SPSite sps = yesinda.yesindakms.sharepoint.List.ListLib.findParamSite("/sites/TQOA/", this.Context);

SharePoint 圖檔庫操作

        sps.AllowUnsafeUpdates = true;

SharePoint 圖檔庫操作

        SPWeb spw = sps.OpenWeb();

SharePoint 圖檔庫操作

        spw.AllowUnsafeUpdates = true;

SharePoint 圖檔庫操作

        SPList list = spw.Lists["圖檔"];

SharePoint 圖檔庫操作

        SPFolder folder = list.RootFolder;

SharePoint 圖檔庫操作

        SPFolderCollection folder2 = list.RootFolder.SubFolders;

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        foreach (SPFolder folder3 in list.RootFolder.SubFolders)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            if (folder3.Name != "")

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

            ...{

SharePoint 圖檔庫操作

                if (folder3.Name == "111")

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

                ...{

SharePoint 圖檔庫操作

                    foreach (SPFile file in folder3.Files)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

                    ...{

SharePoint 圖檔庫操作

                        if (dt != null)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

                        ...{

SharePoint 圖檔庫操作

                            DataRow dr = dt.NewRow();

SharePoint 圖檔庫操作

                            dr[0] = file.Item.ID;

SharePoint 圖檔庫操作

                            dr[1] = file.Name;

SharePoint 圖檔庫操作

                            dr[2] = "http://" + sps.HostName + file.ServerRelativeUrl;

SharePoint 圖檔庫操作

                            dt.Rows.Add(dr);

SharePoint 圖檔庫操作

                        }

SharePoint 圖檔庫操作

                    }

SharePoint 圖檔庫操作

                }

SharePoint 圖檔庫操作

            }

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

        DataView dv = new DataView(dt);

SharePoint 圖檔庫操作

        return dv;

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作
SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ///擷取圖檔庫下的檔案夾

SharePoint 圖檔庫操作

    public void GetFolder()

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        SPSite sps = yesinda.yesindakms.sharepoint.List.ListLib.findParamSite("/sites/TQOA/", this.Context);

SharePoint 圖檔庫操作

        sps.AllowUnsafeUpdates = true;

SharePoint 圖檔庫操作

        SPWeb spw = sps.OpenWeb();

SharePoint 圖檔庫操作

        spw.AllowUnsafeUpdates = true;

SharePoint 圖檔庫操作

        SPList list = spw.Lists["圖檔"];

SharePoint 圖檔庫操作

        SPFolder folder = list.RootFolder;

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        foreach (SPFolder folder3 in list.RootFolder.SubFolders)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            if (folder3.Name.IndexOf("_") != 0)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

            ...{

SharePoint 圖檔庫操作

                this.ddlSelect.Items.Add(folder3.Name);

SharePoint 圖檔庫操作

            }

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    /// <summary>

SharePoint 圖檔庫操作

    /// 綁定GridView控件

SharePoint 圖檔庫操作

    /// </summary>

SharePoint 圖檔庫操作

    public void BindGrid()

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        this.GridView1.DataKeyNames = new string[] ...{ "序号" };

SharePoint 圖檔庫操作

        this.GridView1.DataSource = CreateDataSource();

SharePoint 圖檔庫操作

        this.GridView1.DataBind();

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        this.ddlCurrentPage.Items.Clear();

SharePoint 圖檔庫操作

        for (int i = 1; i <= this.GridView1.PageCount; i++)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            this.ddlCurrentPage.Items.Add(i.ToString());

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

        if (this.GridView1.PageIndex != 0)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            this.ddlCurrentPage.SelectedIndex = this.GridView1.PageIndex;

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    protected void btnUpImage_Click(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        AddImage();

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    上傳圖檔#region  上傳圖檔

SharePoint 圖檔庫操作

    //儲存圖檔路徑

SharePoint 圖檔庫操作

    public static string ImageUrl = String.Empty;

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    /// <summary>

SharePoint 圖檔庫操作

    /// 上傳圖檔到圖檔庫

SharePoint 圖檔庫操作

    /// </summary>

SharePoint 圖檔庫操作

    public void AddImage()

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        if (File1.Value != "")

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            //上傳附件添加到文檔庫,并傳回ID,賦給model.Mattachment

SharePoint 圖檔庫操作

            string filename = File1.PostedFile.FileName.Substring(File1.PostedFile.FileName.LastIndexOf("/") + 1);

SharePoint 圖檔庫操作

            Stream filedataStream = File1.PostedFile.InputStream;

SharePoint 圖檔庫操作

            int dataLen = File1.PostedFile.ContentLength;

SharePoint 圖檔庫操作

            string fileType = File1.PostedFile.ContentType;

SharePoint 圖檔庫操作

            byte[] fileData = new byte[dataLen];

SharePoint 圖檔庫操作

            filedataStream.Read(fileData, 0, dataLen);

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

            SPSite sps = yesinda.yesindakms.sharepoint.List.ListLib.findParamSite("/sites/TQOA/", this.Context);

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

            sps.AllowUnsafeUpdates = true;

SharePoint 圖檔庫操作

            SPWeb spw = sps.OpenWeb();

SharePoint 圖檔庫操作

            spw.AllowUnsafeUpdates = true;

SharePoint 圖檔庫操作

            SPList list = spw.Lists["圖檔"];

SharePoint 圖檔庫操作

            SPFolder folder = list.RootFolder;

SharePoint 圖檔庫操作

            SPFolderCollection folder2 = list.RootFolder.SubFolders;

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

            foreach (SPFolder folder3 in list.RootFolder.SubFolders)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

            ...{

SharePoint 圖檔庫操作

                if (folder3.Name == "111")

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

                ...{

SharePoint 圖檔庫操作

                    bool ex = false;

SharePoint 圖檔庫操作

                    if (folder.Exists)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

                    ...{

SharePoint 圖檔庫操作

                        try

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

                        ...{

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

                            ex = folder3.Files[filename].Exists;

SharePoint 圖檔庫操作

                            Response.Write("<script language="javascript">alert('已有相同名稱的檔案存在');</script>");

SharePoint 圖檔庫操作

                            return;

SharePoint 圖檔庫操作

                        }

SharePoint 圖檔庫操作

                        catch

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

                        ...{

SharePoint 圖檔庫操作

                            folder3.Files.Add(filename, fileData, true);

SharePoint 圖檔庫操作

                            ImageUrl = "http://" + sps.HostName + folder3.ServerRelativeUrl + "/" + filename;

SharePoint 圖檔庫操作

                        }

SharePoint 圖檔庫操作

                    }

SharePoint 圖檔庫操作

                }

SharePoint 圖檔庫操作

            }

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

            Response.Write("<script>window.returnValue='" + ImageUrl + "';window.close();</script>");

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    #endregion

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    //全選

SharePoint 圖檔庫操作

    protected void CheckAll(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        CheckBox cbx = (CheckBox)sender;

SharePoint 圖檔庫操作

        foreach (GridViewRow gvr in GridView1.Rows)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");

SharePoint 圖檔庫操作

            ch.Checked = cbx.Checked;

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    /// <summary>

SharePoint 圖檔庫操作

    /// 将圖檔庫中的圖檔插入到文本中

SharePoint 圖檔庫操作

    /// </summary>

SharePoint 圖檔庫操作

    /// <param name="sender"></param>

SharePoint 圖檔庫操作

    /// <param name="e"></param>

SharePoint 圖檔庫操作

    protected void btnOutPut_Click(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        SPSite sps = yesinda.yesindakms.sharepoint.List.ListLib.findParamSite("/sites/TQOA/", this.Context);

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        sps.AllowUnsafeUpdates = true;

SharePoint 圖檔庫操作

        SPWeb spw = sps.OpenWeb();

SharePoint 圖檔庫操作

        spw.AllowUnsafeUpdates = true;

SharePoint 圖檔庫操作

        SPList list = spw.Lists["圖檔"];

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        string ReturnString = String.Empty;

SharePoint 圖檔庫操作

        foreach (GridViewRow gvr in this.GridView1.Rows)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            CheckBox ch = (CheckBox)gvr.FindControl("ItemCheckBox");

SharePoint 圖檔庫操作

            if (ch.Checked)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

            ...{

SharePoint 圖檔庫操作

                SPListItem listcon = list.Items.GetItemById(Convert.ToInt32(GridView1.DataKeys[gvr.RowIndex].Value.ToString()));

SharePoint 圖檔庫操作

                ReturnString += sps.Url + "/" + listcon.Url;

SharePoint 圖檔庫操作

            }

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

        Response.Write("<script>window.returnValue='" + ReturnString + "';window.close();</script>");

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    protected void radbtnUpload_SelectedIndexChanged(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        if (this.radbtnUpload.SelectedIndex == 0)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            this.Panel1.Visible = true;

SharePoint 圖檔庫操作

            this.Panel2.Visible = false;

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

        else

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            this.Panel1.Visible = false;

SharePoint 圖檔庫操作

            this.Panel2.Visible = true;

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        e.Row.Cells[2].Attributes.Add("style", "display:none");

SharePoint 圖檔庫操作

        e.Row.Cells[1].Attributes.Add("style", "display:none");

SharePoint 圖檔庫操作

        //滑過GridView控件顯示不同顔色

SharePoint 圖檔庫操作

        if (e.Row.RowType == DataControlRowType.DataRow)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#f0ffff';javascript:document.getElementById('imgshow').src='" + e.Row.Cells[2].Text + "';");

SharePoint 圖檔庫操作

            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        this.lblCurrentPage.Text = string.Format("目前第{0}頁/總共{1}頁", this.GridView1.PageIndex + 1, this.GridView1.PageCount);

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    protected void lnkbtnFrist_Click(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        //顯示首頁

SharePoint 圖檔庫操作

        this.GridView1.PageIndex = 0;

SharePoint 圖檔庫操作

        BindGrid();

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    protected void lnkbtnPre_Click(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        //顯示上一頁

SharePoint 圖檔庫操作

        if (this.GridView1.PageIndex > 0)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            this.GridView1.PageIndex = this.GridView1.PageIndex - 1;

SharePoint 圖檔庫操作

            BindGrid();

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    protected void lnkbtnNext_Click(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        //顯示下一頁

SharePoint 圖檔庫操作

        if (this.GridView1.PageIndex < this.GridView1.PageCount)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        ...{

SharePoint 圖檔庫操作

            this.GridView1.PageIndex = this.GridView1.PageIndex + 1;

SharePoint 圖檔庫操作

            BindGrid();

SharePoint 圖檔庫操作

        }

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    protected void lnkbtnLast_Click(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        //顯示最後一頁

SharePoint 圖檔庫操作

        this.GridView1.PageIndex = this.GridView1.PageCount;

SharePoint 圖檔庫操作

        BindGrid();

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    protected void ddlName_SelectedIndexChanged(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        //選擇指定頁顯示

SharePoint 圖檔庫操作

        this.GridView1.PageIndex = this.ddlCurrentPage.SelectedIndex;

SharePoint 圖檔庫操作

        BindGrid();

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    protected void lnkSelect_Command(object sender, CommandEventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作

        LinkButton lb = (LinkButton)sender;

SharePoint 圖檔庫操作

        DataControlFieldCell dcf = (DataControlFieldCell)lb.Parent;

SharePoint 圖檔庫操作

        GridViewRow gvr = (GridViewRow)dcf.Parent;

SharePoint 圖檔庫操作

        GridView1.SelectedIndex = gvr.RowIndex;

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

        Response.Write("<script>window.returnValue='"+gvr.Cells[2].Text+"';window.close();</script>");

SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

    protected void ddlSelect_SelectedIndexChanged(object sender, EventArgs e)

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    ...{

SharePoint 圖檔庫操作
SharePoint 圖檔庫操作

    }

SharePoint 圖檔庫操作

}

SharePoint 圖檔庫操作