コード例 #1
0
        /// <summary>
        ///     Метод осуществляет поиск в соответствии с установленными параметрами
        /// </summary>
        private void FilterApply()
        {
            originalStoresId = null;
            StoresClientScripts.SendSetInnerHtml(this, "StoreReport", string.Empty);

            var report_type = sStoreReportType.Value.ToInt();

            if (report_type == 0)
            {
                return;
            }

            //pageBar.SetDisabled(true, false);

            _table.SqlParams.Clear();
            _table.SqlParams.Add("@КодТипаОтчётаПоСкладам",
                                 string.IsNullOrEmpty(sStoreReportType.Value) ? DBNull.Value : (object)sStoreReportType.Value);

            //pageBar.CurrentPageNumber = 1;

            FilterUpdate();
        }
コード例 #2
0
        /// <summary>
        ///     Метод устанавливает параметры сортировки и отправляет запрос поиска в БД в соответствии с ранее установленными
        ///     параметрами.
        ///     Отображает или обновляет таблицу с результатами поиска
        /// </summary>
        public DataTable Update()
        {
            var rowNumber    = "-1";
            var pageNum      = null == _pageBar ? "-1" : _pageBar.CurrentPageNumber.ToString();
            var itemsPerPage = null == _pageBar ? "-1" : _pageBar.RowsPerPage.ToString();
            var pageCount    = "-1";

            var strSort = GetSortMode(-1);

            if (_sqlCmdType == CommandType.StoredProcedure)
            {
                SqlParams["@Sort"] = strSort;
            }

            var dtStoresResult = DBManager.GetData(sqlCmd, Config.DS_person, _sqlCmdType, SqlParams, null, strSort,
                                                   string.Empty, null, null, null, ref pageNum, ref itemsPerPage, ref pageCount, out rowNumber);

            if (null == dtStoresResult)
            {
                StoresClientScripts.SendSetInnerHtml(_parentPage, _divId, string.Empty);
                if (null != _pageBar)
                {
                    _pageBar.SetDisabled(true, true);
                }
                return(null);
            }

            if (null != _pageBar)
            {
                _pageBar.MaxPageNumber = pageCount.ToInt();

                while (_pageBar.MaxPageNumber < _pageBar.CurrentPageNumber)
                {
                    //Такая ситуация возможна при удалении последней записи на последней странице
                    //Используем --_pageBar.CurrentPageNumber > 0 что избежать бесконечной рекурсии
                    if (--_pageBar.CurrentPageNumber > 0 && _pageBar.CurrentPageNumber <= _pageBar.MaxPageNumber)
                    {
                        return(Update());
                    }
                }

                _pageBar.SetDisabled(dtStoresResult.Rows.Count < 1, false);
            }

            var strXmlResult = string.Empty;

            using (var writer = new StringWriter()) //warning : CA2000 : Microsoft.Reliability
            {
                dtStoresResult.WriteXml(writer);
                strXmlResult = writer.ToString();
            }

            var xslt = new XslCompiledTransform();

            xslt.Load(_parentPage.Server.MapPath(_template));

            var argsList = new XsltArgumentList();

            var ed = new EmpoyeeData(_parentPage);

            argsList.AddExtensionObject("urn:kesco-stores-person", ed);
            if (_parentPage.ReturnId == "1")
            {
                argsList.AddParam("return_id", "", true);
            }

            if (null == _pageBar)
            {
                argsList.AddParam("total_count", "", dtStoresResult.Rows.Count);
                argsList.AddParam("current_page", "", 1);
                argsList.AddParam("page_size", "", dtStoresResult.Rows.Count);
            }
            else
            {
                argsList.AddParam("total_count", "", rowNumber);
                argsList.AddParam("current_page", "", _pageBar.CurrentPageNumber);
                argsList.AddParam("page_size", "", _pageBar.RowsPerPage);
            }

            using (var sreader = new StringReader(strXmlResult)) //warning : CA2000 : Microsoft.Reliability
            {
                var xreader = new XmlTextReader(sreader);
                using (var swriter = new StringWriter()) //warning : CA2000 : Microsoft.Reliability
                {
                    var xwriter = new XmlTextWriter(swriter);

                    xslt.Transform(xreader, argsList, xwriter);
                    StoresClientScripts.SendSetInnerHtml(_parentPage, _divId, swriter.ToString());
                    //_parentCtrl.Value = swriter.ToString();
                }
            }

            //Таблицу необходимо перерисовать в любом случае (возможно она была отображена с другими стилями)
            //При изменении содержимого элементов из JavaScript (изменили аттрибут class) серверные значения Value
            //остаются неизменными, что приводит к неправильному определению изменения содержимого элемента
            //Но !!! При выполнении какой-либо следующей команды, все изменения сделанные на стороне клиента будут отменены...
            //_parentCtrl.SetPropertyChanged("Value");

            return(dtStoresResult);
        }