Exemple #1
0
    /// <summary>
    /// 編輯模式設定
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gv_Detail_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        //取消編輯模式→設定GridView的EditIndex = -1   
        DataTable dt = (DataTable)Session["STM321_" + PageTimeStamp.Value];
        if (dt != null && dt.Rows.Count > 0)
        {

            string returnValue = "";
            int j = e.RowIndex;
            string ID = ((TextBox)gv_Detail.Rows[j].Cells[0].FindControl("ID")).Text;
            string STORE_HOLIDAY = ((ASP.wui_slp_slp_slpdate_ascx)gv_Detail.Rows[j].Cells[4].Controls[3]).Text;
            string STORE_TYPE=((DropDownList)gv_Detail.Rows[j].Cells[1].Controls[1].FindControl("D1")).SelectedValue;
            string STORE_TYPENAME = ((DropDownList)gv_Detail.Rows[j].Cells[1].Controls[1].FindControl("D1")).SelectedItem.Text;

            if (STORE_TYPE == "")
            {
                this.ShowErrorMessage("請輸入[類別]");
            }

            if (STORE_HOLIDAY == "")
            {
                this.ShowErrorMessage("請輸入[日期]");
            }

            ParameterList.Clear();
            ParameterList.Add(ID);
            ParameterList.Add(STORE_TYPE);
            ParameterList.Add(Convert.ToDateTime(STORE_HOLIDAY));

            //檢查是否已存在於資料庫 
            BCO.MaintainStoreHoliday bco = new MaintainStoreHoliday(ConntionDB);
            returnValue = bco.QueryExistDB(ParameterList) ? "fail" : "ok";

                if (returnValue == "fail")
                {
                    this.ShowErrorMessage("此筆資料已存在假日設定檔!");
                }
                else if (returnValue == "ok")
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        if (ID != dr["ID"].ToString() && STORE_TYPE == dr["STORE_TYPE"].ToString() &&
                           Convert.ToDateTime(STORE_HOLIDAY).ToString() == dr["STORE_HOLIDAY"].ToString())
                        {
                            this.ShowErrorMessage("此筆資料已存在假日設定檔!");
                            returnValue = "fail";
                        }
                    }

                    if (returnValue == "ok")
                    {

                        //20101124 僅限用於直接於Gridview新增刪除編輯資料的狀況
                        //因為dt會保留刪除的資料欄,因此若該資料欄狀態為刪除,應將資料改填入未刪除前的資料的位置
                        if (dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j].RowState == DataRowState.Deleted)
                        {
                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j + 1]["STORE_HOLIDAY"] = STORE_HOLIDAY;

                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j + 1]["STORE_YY"] = Convert.ToDateTime(STORE_HOLIDAY).Year.ToString();
                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j + 1]["STORE_MM"] = Convert.ToDateTime(STORE_HOLIDAY).Month.ToString();
                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j + 1]["STORE_TYPE"] = STORE_TYPE;
                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j + 1]["STORE_TYPENAME"] = STORE_TYPENAME;
                        }
                        else
                        {
                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j]["STORE_HOLIDAY"] = STORE_HOLIDAY;

                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j]["STORE_YY"] = Convert.ToDateTime(STORE_HOLIDAY).Year.ToString();
                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j]["STORE_MM"] = Convert.ToDateTime(STORE_HOLIDAY).Month.ToString();
                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j]["STORE_TYPE"] = STORE_TYPE;
                            dt.Rows[gv_Detail.PageIndex * gv_Detail.PageSize + j]["STORE_TYPENAME"] = STORE_TYPENAME;
                        }
                        this.setGV(-1, dt, true);
                    }
                }
        }
    }