protected void dgSKPersetujuan_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            List<SKPersetujuan> coll = new List<SKPersetujuan>();
            if (ViewState["SKPERSETUJUAN"] != null)
                coll = ViewState["SKPERSETUJUAN"] as List<SKPersetujuan>;

            if (e.CommandName == "add")
            {
                TextBox txtNoAdd = e.Item.FindControl("txtNoAdd") as TextBox;
                TextBox txtKeteranganAdd = e.Item.FindControl("txtKeteranganAdd") as TextBox;
                FileUpload fuAdd = e.Item.FindControl("fuAdd") as FileUpload;

                if (isExistInNPWPGrid(txtNoAdd.Text, "lblNo"))
                {
                    Util.ShowMessage(Page, SR.DataIsExist(txtNoAdd.Text.Trim()));
                    return;
                }

                if (isExistInNPWPGrid(fuAdd.FileName, "lblAtttachmentHidden"))
                {
                    Util.ShowMessage(Page, SR.DataIsExist(fuAdd.FileName));
                    return;
                }

                SKPersetujuan o = new SKPersetujuan();
                o.No = txtNoAdd.Text.Trim();
                o.Keterangan = txtKeteranganAdd.Text.Trim();

                Stream strm = fuAdd.PostedFile.InputStream;
                byte[] bytes = new byte[Convert.ToInt32(fuAdd.PostedFile.ContentLength)];
                strm.Read(bytes, 0, Convert.ToInt32(fuAdd.PostedFile.ContentLength));
                strm.Close();

                o.Attachment = bytes;
                o.NamaFile = fuAdd.FileName;
                o.ID = 0;
                coll.Add(o);

                ViewState["SKPERSETUJUAN"] = coll;
            }
            if (e.CommandName == "save")
            {
                TextBox txtNoEdit = e.Item.FindControl("txtNoEdit") as TextBox;
                TextBox txtKeteranganEdit = e.Item.FindControl("txtKeteranganEdit") as TextBox;
                FileUpload fuEdit = e.Item.FindControl("fuEdit") as FileUpload;

                if (isExistInNPWPGrid(txtNoEdit.Text, "lblNPWP"))
                {
                    Util.ShowMessage(Page, SR.DataIsExist(txtNoEdit.Text.Trim()));
                    return;
                }

                if (isExistInNPWPGrid(fuEdit.FileName, "lblAtttachmentHidden"))
                {
                    Util.ShowMessage(Page, SR.DataIsExist(fuEdit.FileName));
                    return;
                }

                SKPersetujuan o = coll[e.Item.ItemIndex] as SKPersetujuan;
                o.No = txtNoEdit.Text.Trim();
                o.Keterangan = txtKeteranganEdit.Text.Trim();

                if (fuEdit.PostedFile != null)
                {
                    if (fuEdit.PostedFile.ContentLength > 0)
                    {
                        Stream strm = fuEdit.PostedFile.InputStream;
                        byte[] bytes = new byte[Convert.ToInt32(fuEdit.PostedFile.ContentLength)];
                        strm.Read(bytes, 0, Convert.ToInt32(fuEdit.PostedFile.ContentLength));
                        strm.Close();

                        o.Attachment = bytes;
                        o.NamaFile = fuEdit.FileName;
                    }
                }

                coll[e.Item.ItemIndex] = o;
                ViewState["SKPERSETUJUAN"] = coll;

                dgSKPersetujuan.EditItemIndex = -1;
                dgSKPersetujuan.ShowFooter = true;
            }
            if (e.CommandName == "edit")
            {
                dgSKPersetujuan.ShowFooter = false;
                dgSKPersetujuan.EditItemIndex = e.Item.ItemIndex;
            }
            if (e.CommandName == "cancel")
            {
                dgSKPersetujuan.EditItemIndex = -1;
                dgSKPersetujuan.ShowFooter = true;
            }
            if (e.CommandName == "delete")
            {
                coll.RemoveAt(e.Item.ItemIndex);
                ViewState["NPWP"] = coll;
            }
            BindSKPersetujuan();
        }
        private void GetSKPersetujuan(int id)
        {
            SPQuery query = new SPQuery();
            query.Query = "<Where>" +
                              "<Eq>" +
                                 "<FieldRef Name='PerubahanAnggaran' LookupId='True' />" +
                                 "<Value Type='Lookup'>" + id + "</Value>" +
                              "</Eq>" +
                          "</Where>" +
                          "<OrderBy>" +
                            "<FieldRef Name='Created' Ascending='False' />" +
                          "</OrderBy>";

            SPList list = web.GetList(Util.CreateSharePointDocLibStrUrl(web.Url, "SKPersetujuan"));
            SPListItemCollection collSPPerubahan = list.GetItems(query);
            List<SKPersetujuan> collDokumen = new List<SKPersetujuan>();
            foreach (SPListItem i in collSPPerubahan)
            {
                SKPersetujuan o = new SKPersetujuan();
                o.ID = i.ID;
                o.NamaFile = i["Name"].ToString();
                o.No = i["No"].ToString();
                if (i["Keterangan"] != null)
                    o.Keterangan = i["Keterangan"].ToString();
                o.Attachment = i.File.OpenBinary();
                o.Url = string.Format("<a href='/SKPersetujuan/{0}'>{0}</a>", i["Name"].ToString());
                o.IsDeleted = false;
                collDokumen.Add(o);
            }
            ViewState["SKPERSETUJUAN"] = collDokumen;
        }