/// <summary> /// Fills given drop-down list with the items of particular type. /// </summary> private void DisplayAvailableItems() { if (RelatedObject != null) { // Prepare the site where string where = null; if (RelatedObject.SiteIDColumn != TypeInfo.COLUMN_NAME_UNKNOWN) { int selectedSiteId = -1; // Add where if (CMSObjectHelper.GetSiteBindingObject(RelatedObject) == null) { selectedSiteId = ValidationHelper.GetInteger(siteSelector.Value, -1); } if (selectedSiteId == 0) { where = RelatedObject.SiteIDColumn + " IS NULL"; } else { where = RelatedObject.SiteIDColumn + " = " + selectedSiteId; } } // Load the object selectors if (ActiveLeft) { // Active left selector selLeftObj.Enabled = true; selLeftObj.ObjectType = RelatedObject.ObjectType; selLeftObj.WhereCondition = where; selLeftObj.Reload(true); if (!selLeftObj.HasData) { selLeftObj.DropDownSingleSelect.Items.Add(new ListItem(GetString("General.NoneAvailable"), "")); selLeftObj.Enabled = false; } } else { // Active right selector selRightObj.Enabled = true; selRightObj.ObjectType = RelatedObject.ObjectType; selRightObj.WhereCondition = where; selRightObj.Reload(true); if (!selRightObj.HasData) { selRightObj.DropDownSingleSelect.Items.Add(new ListItem(GetString("General.NoneAvailable"), "")); selRightObj.Enabled = false; } } } }
/// <summary> /// Gets the where condition for the selected object type. /// </summary> /// <param name="selectedObjectType">Selected object type</param> public string GetWhereCondition(string selectedObjectType) { if (Object != null) { string where = null; if (RelatedObject != null) { // Get the site name if ((RelatedObject.SiteIDColumn != TypeInfo.COLUMN_NAME_UNKNOWN) && (CMSObjectHelper.GetSiteBindingObject(RelatedObject) == null)) { if (siteSelector.DropDownSingleSelect.Items.Count == 0) { siteSelector.Value = CMSContext.CurrentSiteID; } if (siteSelector.HasData) { // Set the site name for registration int selectedSiteId = ValidationHelper.GetInteger(siteSelector.Value, 0); if (selectedSiteId >= 0) { string siteWhere = QueryProvider.GetQuery(RelatedObject.ObjectType + ".selectall", RelatedObject.IDColumn, SqlHelperClass.GetSiteIDWhereCondition(RelatedObject.SiteIDColumn, selectedSiteId), null, 0); // Where condition for the left object string rightWhere = ObjectRelationshipInfoProvider.GetWhereCondition(ObjectID, ObjectType, 0, false, true, selectedObjectType); rightWhere += " AND RelationshipLeftObjectID IN (" + siteWhere + ")"; // Where condition for the left object string leftWhere = ObjectRelationshipInfoProvider.GetWhereCondition(ObjectID, ObjectType, 0, true, false, selectedObjectType); leftWhere += " AND RelationshipRightObjectID IN (" + siteWhere + ")"; // --- Add site conditions here where = SqlHelperClass.AddWhereCondition(leftWhere, rightWhere, "OR"); } } } } if (String.IsNullOrEmpty(where)) { // Get using regular where where = ObjectRelationshipInfoProvider.GetWhereCondition(ObjectID, ObjectType, 0, true, true, selectedObjectType); } return(where); } return(null); }
/// <summary> /// Refreshes the selection of site. /// </summary> protected void RefreshNewSiteSelection() { if (RelatedObject != null) { if ((RelatedObject.SiteIDColumn != TypeInfo.COLUMN_NAME_UNKNOWN) && (CMSObjectHelper.GetSiteBindingObject(RelatedObject) == null)) { pnlSite.Visible = true; siteSelector_OnSelectionChanged(null, null); } else { pnlSite.Visible = false; } } }