private void ListDealers(DealerSortType sortType) { try { String[] htmlStr = new String[3]; DealerBiz dealerBiz = new DealerBiz(); int total = 0; lblOutOfUS.Visible = false; // List composers by 3 columns int currentControlIndex = 0; // the current column index that appending composers. int countAppended = 0; // the number of composers the current column had appended. if (sortType == DealerSortType.Name) { #region sort by firtletter of name List <lwg_Dealer> dealers = dealerBiz.GetAllDealers(); total = dealers.Count; if (total == 0) { Response.Write("There is no dealer yet."); } int countEachColumn = 0; countEachColumn = int.Parse((Math.Ceiling((double)(total / columnRatio)).ToString())); int maxGroupCount = MaxFirstLetterGroup(dealers); // The max group items count. if (maxGroupCount > countEachColumn) { countEachColumn = maxGroupCount; } for (int i = 65; i < 91; i++) { string firstLetter = Chr(i); List <lwg_Dealer> subDealers = FilterDealerByFirstLetter(dealers, firstLetter); int subCount = subDealers.Count; if (subCount > 0) { if (subCount >= countEachColumn) { if (currentControlIndex >= 1 && currentControlIndex <= 2) { currentControlIndex += 1; } htmlStr[currentControlIndex] += CreateHtml(subDealers, firstLetter, true); countAppended = countEachColumn; } else if (subCount + 1 > countEachColumn - countAppended) { if (currentControlIndex < 2) { currentControlIndex += 1; } // Generate html htmlStr[currentControlIndex] += CreateHtml(subDealers, firstLetter, true); countAppended = subCount + 1; } else { htmlStr[currentControlIndex] += CreateHtml(subDealers, firstLetter, true); countAppended += subCount + 1; } } } this.ltrDealers1.Text = htmlStr[0]; this.ltrDealers2.Text = htmlStr[1]; this.ltrDealers3.Text = htmlStr[2]; #endregion } else { #region sort by state lblOutOfUS.Visible = true; #region US Dealers List <lwg_Dealer> dealers = dealerBiz.GetAllUSDealers(); total = dealers.Count; if (total == 0) { Response.Write("There is no dealer yet."); } int countEachColumn = 0; countEachColumn = int.Parse((Math.Ceiling((double)(total / columnRatio)).ToString())); int maxGroupCount = MaxStateGroup(dealers); // The max group items count. if (maxGroupCount > countEachColumn) { countEachColumn = maxGroupCount; } List <string> stateList = dealerBiz.GetAllStateOfUS(); foreach (string state in stateList) { List <lwg_Dealer> subDealers = FilterDealerByState(dealers, state); int subCount = subDealers.Count; if (subCount > 0) { if (subCount >= countEachColumn) { if (currentControlIndex >= 1 && currentControlIndex <= 2) { currentControlIndex += 1; } htmlStr[currentControlIndex] += CreateHtml(subDealers, state, true); countAppended = countEachColumn; } else if (subCount + 1 > countEachColumn - countAppended + 5) { if (currentControlIndex < 2) { currentControlIndex += 1; } // Generate html htmlStr[currentControlIndex] += CreateHtml(subDealers, state, true); countAppended = subCount + 1; } else { htmlStr[currentControlIndex] += CreateHtml(subDealers, state, true); countAppended += subCount + 1; } } } this.ltrDealers1.Text = htmlStr[0]; this.ltrDealers2.Text = htmlStr[1]; this.ltrDealers3.Text = htmlStr[2]; #endregion #region Out of US Dealers dealers = dealerBiz.GetAllOutOfUSDealers(); total = dealers.Count; if (total == 0) { return; } htmlStr = new String[3]; countEachColumn = 0; countAppended = 0; currentControlIndex = 0; countEachColumn = int.Parse((Math.Ceiling((double)(total / columnRatio)).ToString())); stateList = dealerBiz.GetAllStateOutOfUS(); foreach (string state in stateList) { List <lwg_Dealer> subDealers = FilterDealerByState(dealers, state); int subCount = subDealers.Count; if (subCount > 0) { if (subCount >= countEachColumn) { if (currentControlIndex >= 1 && currentControlIndex <= 2) { currentControlIndex += 1; } htmlStr[currentControlIndex] += CreateHtml(subDealers, state, true); countAppended = countEachColumn; } else if (subCount + 1 > countEachColumn - countAppended + 5) { if (currentControlIndex < 2) { currentControlIndex += 1; } // Generate html htmlStr[currentControlIndex] += CreateHtml(subDealers, state, true); countAppended = subCount + 1; } else { htmlStr[currentControlIndex] += CreateHtml(subDealers, state, true); countAppended += subCount + 1; } } } this.ltrDealers4.Text = htmlStr[0]; this.ltrDealers5.Text = htmlStr[1]; this.ltrDealers6.Text = htmlStr[2]; #endregion #endregion } } catch (Exception ex) { Response.Write(ex.Message); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadSortType(); if (!string.IsNullOrEmpty(Request.QueryString["Filter"])) { string alpha = ""; alpha = Request.QueryString["Filter"]; hdfalpha.Value = alpha; string FirstLetter = Request.QueryString["Filter"].ToUpper(); int FirstLetterASCII = Asc(FirstLetter); if (FirstLetterASCII >= 65 && FirstLetterASCII <= 90) { ListDealerByFirstLetter(FirstLetter); ddlSortType.ClearSelection(); ddlSortType.Items.FindByText("Name").Selected = true; divAlphabet.Visible = true; divState.Visible = false; return; } } if (!string.IsNullOrEmpty(Request.QueryString["State"])) { string state = string.Empty; state = Request.QueryString["State"].ToUpper(); DealerBiz dealerBiz = new DealerBiz(); if (dealerBiz.IsExistState(state)) { ListDealerByState(state); ddlSortType.ClearSelection(); ddlSortType.Items.FindByText("State").Selected = true; divState.Visible = true; divAlphabet.Visible = false; ltrStateMenu.Text = CreateSelectionStateMenu(dealerBiz.GetAllStateOfUS(), state, false); ltrOutofUsState.Text = CreateSelectionStateMenu(dealerBiz.GetAllStateOutOfUS(), state, true); return; } else if (state.ToLower() == allStatesOfUS) { ListDealers(DealerSortType.State); ddlSortType.ClearSelection(); ddlSortType.Items.FindByText("State").Selected = true; divState.Visible = true; divAlphabet.Visible = false; ltrStateMenu.Text = CreateSelectionStateMenu(dealerBiz.GetAllStateOfUS(), state.ToLower(), false); ltrOutofUsState.Text = CreateSelectionStateMenu(dealerBiz.GetAllStateOutOfUS(), state.ToLower(), true); return; } } // default load all dealer ListDealers(DealerSortType.Name); divAlphabet.Visible = true; divState.Visible = false; } }