?? listpicker.cs
字號:
//*********************************************************************
//
// 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(" ");
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("->");
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("<-");
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(" ");
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 + -