protected void gridMain_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridEditableItem && e.Item.IsInEditMode) { placeID = -1; Session.Remove("PlaceID"); countryID = -1; Session.Remove("CountryID"); GridEditableItem item = e.Item as GridEditableItem; RadDropDownList ddlPlaces = item.FindControl("ddlPlaces") as RadDropDownList; RadDropDownList ddlCountries = item.FindControl("ddlCountries") as RadDropDownList; TextBox txtNameGR = (TextBox)item["NameGR"].Controls[0]; txtNameGR.Width = Unit.Pixel(300); TextBox txtNameEN = (TextBox)item["NameEN"].Controls[0]; txtNameEN.Width = Unit.Pixel(300); try { EventB currEvent = e.Item.DataItem as EventB; CountriesController ccont = new CountriesController(); PlacesController cont = new PlacesController(); ddlCountries.DataSource = ccont.GetCountries(); ddlCountries.DataTextField = "NameGR"; ddlCountries.DataValueField = "ID"; ddlCountries.DataBind(); if (currEvent != null) { ddlCountries.SelectedIndex = ddlCountries.FindItemByValue(currEvent.Place.CountryID.ToString()).Index; Session["CountryID"] = currEvent.Place.CountryID; ddlPlaces.DataSource = cont.GetPlaces().Where(k => k.CountryID == currEvent.Place.CountryID); ddlPlaces.DataTextField = "NameGR"; ddlPlaces.DataValueField = "ID"; ddlPlaces.DataBind(); ddlPlaces.SelectedIndex = ddlPlaces.FindItemByValue(currEvent.PlaceID.ToString()).Index; Session["PlaceID"] = currEvent.PlaceID; } else { ddlCountries.SelectedIndex = 0; Session["CountryID"] = ddlCountries.SelectedItem.Value; ddlPlaces.DataSource = cont.GetPlaces().Where(k => k.CountryID == int.Parse(ddlCountries.SelectedItem.Value)); ddlPlaces.DataTextField = "NameGR"; ddlPlaces.DataValueField = "ID"; ddlPlaces.DataBind(); ddlPlaces.SelectedIndex = 0; Session["PlaceID"] = ddlPlaces.SelectedItem.Value; } } catch (Exception) { } } }
protected void ddlCountries_SelectedIndexChanged(object sender, DropDownListEventArgs e) { try { countryID = int.Parse(e.Value); Session["CountryID"] = countryID; RadDropDownList ddlCountries = (RadDropDownList)sender; GridEditableItem item = (GridEditableItem)ddlCountries.NamingContainer; RadDropDownList ddlPlaces = (RadDropDownList)item.FindControl("ddlPlaces"); ddlPlaces.ClearSelection(); PlacesController cont = new PlacesController(); ddlPlaces.DataSource = cont.GetPlaces().Where(k => k.CountryID == countryID); ddlPlaces.DataTextField = "NameGR"; ddlPlaces.DataValueField = "ID"; ddlPlaces.DataBind(); ddlPlaces.SelectedIndex = 0; if (ddlPlaces.Items.Count > 0) { Session["PlaceID"] = ddlPlaces.SelectedItem.Value; } else { Session.Remove("PlaceID"); } } catch (Exception) { } }
protected void gridMain_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { int recSkip = gridMain.CurrentPageIndex * gridMain.PageSize; int recTake = gridMain.PageSize; string recFilter = gridMain.MasterTableView.FilterExpression; GridSortExpressionCollection gridSortExxpressions = gridMain.MasterTableView.SortExpressions; try { PlacesController cont = new PlacesController(); gridMain.VirtualItemCount = cont.CountPlaces(recFilter); gridMain.DataSource = cont.GetPlaces(recSkip, recTake, recFilter, gridSortExxpressions); } catch (Exception) { } }