Пример #1
0
    protected void rptTierValues_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (SelectedPreference == null)
        {
            return;
        }
        if (e.CommandName.ToString() == "Add" && ((DropDownList)e.Item.FindControl("ddlPreferenceData")).SelectedItem != null)
        {
            Byte TierLevel = e.CommandArgument.ConvertToByte();
            List <PreferenceItems> lstPreferences = (from item in PreferenceTierData
                                                     where item.TierLevel == TierLevel
                                                     select item.PreferenceItems).FirstOrDefault().ToList();
            if (lstPreferences != null && lstPreferences.Count > 0)
            {
                PreferenceItems prefitem = (from p in lstPreferences
                                            where p.Value == ((DropDownList)e.Item.FindControl("ddlPreferenceData")).SelectedItem.Value
                                            select p).FirstOrDefault();
                if (prefitem != null)
                {
                    prefitem.Selected = true;
                }
            }
            ((DropDownList)e.Item.FindControl("ddlPreferenceData")).DataSource = lstPreferences.Where(p => p.Selected == false);
            ((DropDownList)e.Item.FindControl("ddlPreferenceData")).DataBind();
            ((ListBox)e.Item.FindControl("lstSelectedPreference")).DataSource = lstPreferences.Where(p => p.Selected == true);
            ((ListBox)e.Item.FindControl("lstSelectedPreference")).DataBind();
            if (SelectedPreference.DataTypeID == PreferenceDataType.ListBox)
            {
                ((Button)e.Item.FindControl("btnAdd")).Enabled = ((SelectedPreference.MultiValue == false || lstPreferences.Where(p => p.Selected == false).ToList().Count == 0) ? false : true);
                if (SelectedPreference.MultiValue == true)
                {
                    int i = m_Preference.GetPreferenceItemslistmaxvalue(Convert.ToInt32(SelectedPreference.PreferenceID));
                    if (lstPreferences.Where(p => p.Selected == true).ToList().Count < i)
                    {
                        ((Button)e.Item.FindControl("btnAdd")).Enabled = true;
                    }
                    else
                    {
                        ((Button)e.Item.FindControl("btnAdd")).Enabled = false;
                    }
                }
            }
            else
            {
                ((Button)e.Item.FindControl("btnAdd")).Enabled = false;
            }
        }
        else if (e.CommandName.ToString() == "Remove" && ((ListBox)e.Item.FindControl("lstSelectedPreference")).SelectedItem != null)
        {
            Byte TierLevel = e.CommandArgument.ConvertToByte();
            List <PreferenceItems> lstPreferences = (from item in PreferenceTierData
                                                     where item.TierLevel == TierLevel
                                                     select item.PreferenceItems).FirstOrDefault().ToList();
            if (lstPreferences != null && lstPreferences.Count > 0)
            {
                foreach (ListItem item in ((ListBox)e.Item.FindControl("lstSelectedPreference")).Items)
                {
                    PreferenceItems prefitem = (from p in lstPreferences
                                                where p.Value == item.Value
                                                select p).FirstOrDefault();
                    if (prefitem != null)
                    {
                        prefitem.Selected = !item.Selected;
                    }
                }
                ((DropDownList)e.Item.FindControl("ddlPreferenceData")).DataSource = lstPreferences.Where(p => p.Selected == false);
                ((DropDownList)e.Item.FindControl("ddlPreferenceData")).DataBind();
                ((ListBox)e.Item.FindControl("lstSelectedPreference")).DataSource = lstPreferences.Where(p => p.Selected == true);
                ((ListBox)e.Item.FindControl("lstSelectedPreference")).DataBind();
            }
            if ((SelectedPreference.DataTypeID == PreferenceDataType.ListBox && lstPreferences.Where(p => p.Selected == false).ToList().Count > 0) || SelectedPreference.DataTypeID != PreferenceDataType.ListBox)
            {
                ((Button)e.Item.FindControl("btnAdd")).Enabled = true;
            }
        }

        UpdatePanelMain.Update();
    }