ListBox 上移下移

前台HTML
ExpandedBlockStart.gif 代码
   < div style = " width: 600px; margin: 0px auto; " >
     
< div style = " float: left " >
       
< asp:ListBox ID = " lsBoxHotWord "  runat = " server "  Height = " 300px " ></ asp:ListBox >
     
</ div >
     
< div style = " float: left; margin-top: 40px; " >
          
< asp:Button ID = " btnTop "  runat = " server "  Text = " 上移 "  Width = " 150px "  Height = " 50px "  OnClick = " btnTop_Click "   />
          
< br  />
          
< asp:Button ID = " btnBottom "  runat = " server " Text="下移"  Width = " 150px "  Height = " 50px "  OnClick = " btnBottom_Click "   />
          
< br  />
          
< span style = " font-size: 12px; color: Red " > 排序规则:
         
< br  />
          
& nbsp & nbsp & nbsp & nbsp  - 按排序序号和添加时间排序
          
< br  />
          
& nbsp & nbsp & nbsp & nbsp  - 序号越小越靠前,最新添加的最前显示  </ span >
      
</ div >
</ div >

 

后台代码:

ExpandedBlockStart.gif 代码
     protected   void  btnTop_Click( object  sender, EventArgs e)
    {
        
if  (lsBoxHotWord.SelectedIndex  >   0 )
        {
            
string  name  =  lsBoxHotWord.SelectedItem.Text;
            
string  ID  =  lsBoxHotWord.SelectedItem.Value;
            
int  index  =  lsBoxHotWord.SelectedIndex;
            lsBoxHotWord.SelectedItem.Text 
=  lsBoxHotWord.Items[index  -   1 ].Text;
            lsBoxHotWord.SelectedItem.Value 
=  lsBoxHotWord.Items[index  -   1 ].Value;
            lsBoxHotWord.Items[index 
-   1 ].Text  =  name;
            lsBoxHotWord.Items[index 
-   1 ].Value  =  ID;
            lsBoxHotWord.SelectedIndex
-- ;
        }

        
int  t  =  lsBoxHotWord.Items.Count;
        
for  ( int  i  =   0 ; i  <  t; i ++ )
        {
            
bool  isSuess  =  HotWordMgr.UpdateWordSort(i.ToString(), lsBoxHotWord.Items[i].Value);
        }
        DataBingLv();
    }
    
protected   void  btnBottom_Click( object  sender, EventArgs e)
    {
        
if  (lsBoxHotWord.SelectedIndex  >=   0   &&  lsBoxHotWord.SelectedIndex  <  lsBoxHotWord.Items.Count  -   1 )
        {
            
string  name  =  lsBoxHotWord.SelectedItem.Text;
            
string  ID  =  lsBoxHotWord.SelectedItem.Value;
            
int  index  =  lsBoxHotWord.SelectedIndex;
            lsBoxHotWord.SelectedItem.Text 
=  lsBoxHotWord.Items[index  +   1 ].Text;
            lsBoxHotWord.SelectedItem.Value 
=  lsBoxHotWord.Items[index  +   1 ].Value;
            lsBoxHotWord.Items[index 
+   1 ].Text  =  name;
            lsBoxHotWord.Items[index 
+   1 ].Value  =  ID;
            lsBoxHotWord.SelectedIndex
++ ;
        }
        
int  t  =  lsBoxHotWord.Items.Count;
        
for  ( int  i  =   0 ; i  <  t; i ++ )
        {
            
bool  isSuess  =  HotWordMgr.UpdateWordSort(i.ToString(), lsBoxHotWord.Items[i].Value);
        }
        DataBingLv();//重新绑定数据方法
    }

转载于:https://www.cnblogs.com/caoshuai/archive/2010/09/30/1839540.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 WPF MVVM 中,可以通过使用 `ICommand` 和 `RelayCommand` 来实现 `ListBox` 中的上移下移操作。 以下是一个实现上移下移功能的示例代码: 1. 在视图模型中,创建一个 `ObservableCollection` 来存储列表项,并创建两个 `RelayCommand` 分别用于上移下移操作: ``` public class MyViewModel : INotifyPropertyChanged { private ObservableCollection<string> _items = new ObservableCollection<string>(); public ObservableCollection<string> Items { get { return _items; } set { _items = value; OnPropertyChanged(nameof(Items)); } } public ICommand MoveUpCommand { get; set; } public ICommand MoveDownCommand { get; set; } public MyViewModel() { MoveUpCommand = new RelayCommand<object>(MoveUp, CanMoveUp); MoveDownCommand = new RelayCommand<object>(MoveDown, CanMoveDown); } private bool CanMoveUp(object parameter) { var index = Items.IndexOf(parameter as string); return index > 0; } private void MoveUp(object parameter) { var index = Items.IndexOf(parameter as string); var temp = Items[index]; Items[index] = Items[index - 1]; Items[index - 1] = temp; } private bool CanMoveDown(object parameter) { var index = Items.IndexOf(parameter as string); return index >= 0 && index < Items.Count - 1; } private void MoveDown(object parameter) { var index = Items.IndexOf(parameter as string); var temp = Items[index]; Items[index] = Items[index + 1]; Items[index + 1] = temp; } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } ``` 2. 在视图中,使用 `ListBox` 来显示列表项,并绑定上移下移命令: ``` <ListBox ItemsSource="{Binding Items}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Button Content="▲" Command="{Binding DataContext.MoveUpCommand, RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}" CommandParameter="{Binding}" /> <Button Content="▼" Command="{Binding DataContext.MoveDownCommand, RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}" CommandParameter="{Binding}" /> <TextBlock Text="{Binding}" /> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> ``` 在上面的示例中,使用了 `RelayCommand` 类来实现命令的绑定。它是一个实现了 `ICommand` 接口的类,可以用于在视图模型中声明和实现命令。在 `ListBox` 的数据模板中,使用了 `RelativeSource` 来绑定 `ListBox` 的父级元素(即视图),以便使用视图模型中的命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值