扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:佚名 来源:论坛整理 2007年11月5日
关键字: ASP.NET Multi-ListBox 控件 编程 Windows
1 protected override void LoadViewState(object savedState) 2 { 3 if (savedState != null) 4 { 5 Triplet triplet = (Triplet)savedState; 6 base.LoadViewState(triplet.First); 7 Reflector.InvokeMethod(this.FirstListBox.Items, "LoadViewState", new object[] { triplet.Second }); 8 Reflector.InvokeMethod(this.SecondListBox.Items, "LoadViewState", new object[] { triplet.Third }); 9 } 10 else 11 { 12 base.LoadViewState(null); 13 } 14 this._stateLoaded = true; 15 } 16 17 protected override object SaveViewState() 18 { 19 if (EnableViewState == false) 20 return null; 21 //启用控件视图状态 22 object x = base.SaveViewState(); 23 object y = Reflector.InvokeMethod(FirstListBox.Items, "SaveViewState", null); 24 object z = Reflector.InvokeMethod(SecondListBox.Items, "SaveViewState", null); 25 if ((x == null) && (y == null) && (z == null)) 26 { 27 return null; 28 } 29 return new Triplet(x, y, z); 30 } |
1 public bool LoadPostData(string postDataKey, NameValueCollection postCollection) 2 { 3 bool resultValueFlag = false; 4 //移除指定ListItem,并需要添加了Left ListBox列表框中 5 string itemsRemoved = postCollection[this.ClientID + "_REMOVED"]; 6 string[] itemsRemovedCol = itemsRemoved.Split(','); 7 if (itemsRemovedCol != null) 8 { 9 if (itemsRemovedCol.Length > 0 && itemsRemovedCol[0] != "") 10 { 11 for (int i = 0; i < itemsRemovedCol.Length; i++) 12 { 13 string[] itemsRemoveItems = itemsRemovedCol[i].Split('|'); 14 ListItem item = this.SecondListBox.Items.FindByValue(itemsRemoveItems[1]); 15 if (item != null) 16 { 17 this.SecondListBox.Items.Remove(item); 18 } 19 item = this.FirstListBox.Items.FindByValue(itemsRemoveItems[1]); 20 if (item == null) 21 { 22 23 this.FirstListBox.Items.Add(new ListItem(itemsRemoveItems[0], itemsRemoveItems[1])); 24 } 25 resultValueFlag = true; 26 } 27 } 28 } 29 //从客户端添加指定的ListItem 30 string itemsAdded = postCollection[this.ClientID + "_ADDED"]; 31 string[] itemsAddedCol = itemsAdded.Split(','); 32 if (itemsAddedCol != null) 33 { 34 if (itemsAddedCol.Length > 0 && itemsAddedCol[0] != "") 35 { 36 int counter = -1; 37 for (int i = 0; i < itemsAddedCol.Length; i++) 38 { 39 string[] itemsAddItems = itemsAddedCol[i].Split('|'); 40 ListItem item = this.SecondListBox.Items.FindByValue(itemsAddItems[1]); 41 if (item == null) 42 { 43 this.SecondListBox.Items.Add(new ListItem(itemsAddItems[0],itemsAddItems[1])); 44 counter += 1; 45 } 46 item = this.FirstListBox.Items.FindByValue(itemsAddItems[1]); 47 if (item != null) 48 { 49 this.FirstListBox.Items.Remove(item); 50 } 51 } 52 resultValueFlag = counter > -1 ? true : false; 53 } 54 } 55 56 //从客户端中移除指定的ListItem 57 return resultValueFlag; 58 } 59 60 public void RaisePostDataChangedEvent() 61 { 62 //TODO:: 63 } 64 |
1<asp:MultiListBox ID="ListBox1" runat="server" Rows="10" Width="250px" Height="200px" DataTextField="UserName" DataValueField="UserID" SelectionMode="Multiple"> 2 <FirstListBox><StyleSheet Width="100px" /></FirstListBox> 3 <SecondListBox><StyleSheet Width="100px" /></SecondListBox> 4 </asp:MultiListBox> 5 Submit 1protected void Page_Load(object sender, EventArgs e) 2 { 3 if (Page.IsPostBack) 4 return; 5 ListBox1.FirstListBox.DataSource = LoadData(1, 5); 6 ListBox1.SecondListBox.DataSource = LoadData(6, 10); 7 ListBox1.DataBind(); 8} 9protected void Button1_Click(object sender, EventArgs e) 10 { 11 Response.Write("您SecondList选择的值为:<br/>"); 12 foreach (ListItem item in this.ListBox1.SecondListBox.Items) 13 { 14 Response.Write(item.Text + ":" + item.Value + "<br/>"); 15 } 16 Response.Write("您FirstList选择的值为:<br/>"); 17 foreach (ListItem item in this.ListBox1.FirstListBox.Items) 18 { 19 Response.Write(item.Text + ":" + item.Value + "<br/>"); 20 } 21 } 22 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者