⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listpicker.cs

📁 一个ASP.NET下的中文内容管理和社区系统
💻 CS
📖 第 1 页 / 共 2 页
字号:

        //*********************************************************************
        //
        // SelectedItems Property
        //
        // Returns an array of selected items
        //
        //*********************************************************************
        public string[] SelectedItems {
            get { 
                    if (! _isUplevel) {
                        EnsureChildControls();
                        _selectedItems.Clear();
                        foreach (ListItem item in lstSelectedItems.Items)
                            _selectedItems.Add(item.Text);
                    }    
                    return (string[])_selectedItems.ToArray(typeof(String));
                }    
            set {  
                    _selectedItems = new ArrayList(value);
                    SelectedState = String.Join(",", value);
                }

        }



        //*********************************************************************
        //
        // AllItems Property
        //
        // Returns an array of all items.
        //
        //*********************************************************************
        public string[] AllItems {
            get { 
                return (string[])_allItems.ToArray(typeof(String));
            }
        }



        //*********************************************************************
        //
        // List Picker Constructor
        //
        // Determine whether browser is uplevel.
        //
        //*********************************************************************

        public ListPicker() : base(HtmlTextWriterTag.Table) {
			if (Context != null) {
				if ((HttpContext.Current.Request.Browser.Browser == "IE") && (HttpContext.Current.Request.Browser.MajorVersion >= 6))
					_isUplevel = true;
				else
					_isUplevel = false;
			}
        }


		//*********************************************************************
		//
		// CreateChildControls Method
		//
		// Create composite controls for downlevel browsers.
		//
		//*********************************************************************
		override protected void CreateChildControls() {
			 if (! _isUplevel) {
			     
                lstAllItems = new ListBox();
                Controls.Add(lstAllItems);

                lstSelectedItems = new ListBox();
                Controls.Add(lstSelectedItems);

                btnAddItem = new Button();
                btnAddItem.Text = "->";
                btnAddItem.CausesValidation = false;
                btnAddItem.Click += new EventHandler(btnAddClick);
                Controls.Add(btnAddItem);
                
                btnRemoveItem = new Button();
                btnRemoveItem.Text = "<-";
                btnRemoveItem.CausesValidation = false;
                btnRemoveItem.Click += new EventHandler(btnRemoveClick);
                Controls.Add(btnRemoveItem);      
		     }
		}


		//*********************************************************************
		//
		// btnAddClick Method
		//
		// Raised by clicking add button on downlevel browser.
		//
		//*********************************************************************
        void btnAddClick(Object s, EventArgs e) {
            if (lstAllItems.SelectedIndex != -1) {
                // Move the item
                lstSelectedItems.SelectedIndex = -1;
                lstSelectedItems.Items.Add( lstAllItems.SelectedItem );
                lstAllItems.Items.RemoveAt( lstAllItems.SelectedIndex );
                
                // update changed status items
                Changed = true;
            }
        }



		//*********************************************************************
		//
		// btnRemoveClick Method
		//
		// Raised by clicking remove button on downlevel browser.
		//
		//*********************************************************************
   
        void btnRemoveClick(Object s, EventArgs e) {
            if (lstSelectedItems.SelectedIndex != -1) {
                // Move the item
                lstAllItems.SelectedIndex = -1;
                lstAllItems.Items.Add( lstSelectedItems.SelectedItem );
                lstSelectedItems.Items.RemoveAt( lstSelectedItems.SelectedIndex );
 
                // update changed status items
                Changed = true;
             }
        }

       
		//*********************************************************************
		//
		// OnPreRender Method
		//
		// Add reference to client-side script.
		//
		//*********************************************************************
		override protected void OnPreRender(EventArgs e) {
			 if (_isUplevel) {
			     if (!Page.IsClientScriptBlockRegistered("listpicker"))
				    Page.RegisterClientScriptBlock("listpicker", String.Format("<script language=\"JScript\" Src=\"{0}\"></script>", CommunityGlobals.AppPath + "/scripts/listpicker.js"));
                 Page.RegisterHiddenField(SelectedHelperID, String.Join(",", SelectedItems ));
                 Page.RegisterHiddenField(AllHelperID, String.Join(",", AllItems ));

		      }
		}
        
        

        //*********************************************************************
        //
        // RenderContents Method
        //
        // Displays either uplevel or downlevel content.
        //
        //*********************************************************************
        override protected void RenderContents(HtmlTextWriter writer) {
            if (_isUplevel)
                RenderUplevelContent(writer);
            else
                RenderDownlevelContent(writer);
        
        }
        

        //*********************************************************************
        //
        // RenderUplevelContents Method
        //
        // Displays uplevel content.
        //
        //*********************************************************************
        void RenderUplevelContent(HtmlTextWriter writer) {
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            
            // Add Labels
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(AllItemsText);
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write("&nbsp;");
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(SelectedItemsText);
            writer.RenderEndTag();
            
            writer.RenderEndTag();
            
            // Add All listbox
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            
            writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID + "_SrcList");
            writer.AddAttribute(HtmlTextWriterAttribute.Size, Size.ToString());
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "listPicker" );
            writer.RenderBeginTag(HtmlTextWriterTag.Select);
            foreach (string item in _allItems) {
                writer.Write( String.Format("<option value=\"{0}\">{0}</option>", item));
            }
            writer.RenderEndTag();
            
            writer.RenderEndTag();
            
            // Add Button
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Onclick, String.Format("addItem('{0}')", ClientID ) );
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "listPickerArrow" );
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.Write("-&gt;");
            writer.RenderEndTag();

            // Delete Button
            writer.RenderBeginTag(HtmlTextWriterTag.P);
            writer.AddAttribute(HtmlTextWriterAttribute.Onclick, String.Format("removeItem('{0}')", ClientID) );
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "listPickerArrow" );
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.Write("&lt;-");
            writer.RenderEndTag();
            writer.RenderEndTag();

            writer.RenderEndTag();
            
            
            // Add selected listbox
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID + "_DstList");
            writer.AddAttribute(HtmlTextWriterAttribute.Size, Size.ToString());
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "listPicker" );
            writer.RenderBeginTag(HtmlTextWriterTag.Select);
            foreach (string item in _selectedItems) {
                writer.Write( String.Format("<option value=\"{0}\">{0}</option>", item));
            }
            writer.RenderEndTag();

            writer.RenderEndTag();
            
            writer.RenderEndTag();
        }
        



        //*********************************************************************
        //
        // RenderDownlevelContents Method
        //
        // Displays uplevel content.
        //
        //*********************************************************************
        void RenderDownlevelContent(HtmlTextWriter writer) {
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);


            // Add Labels
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(AllItemsText);
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write("&nbsp;");
            writer.RenderEndTag();
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(SelectedItemsText);
            writer.RenderEndTag();
            
            writer.RenderEndTag();

            
            // Add All listbox
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            lstAllItems.RenderControl(writer);
            writer.RenderEndTag();
            
            // Add Button
            writer.RenderBeginTag(HtmlTextWriterTag.Td);

            btnAddItem.RenderControl(writer);

            // Delete Button
            writer.RenderBeginTag(HtmlTextWriterTag.P);
            btnRemoveItem.RenderControl(writer);
            writer.RenderEndTag();

            writer.RenderEndTag();
            
            
            // Add selected listbox
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            lstSelectedItems.RenderControl(writer);
            writer.RenderEndTag();
            
            writer.RenderEndTag();
        
        }
        



    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -