/// <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(); }
/// <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); }