`
shirlly
  • 浏览: 1647674 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

ListBox之间的数据项的移动操作

    博客分类:
  • .NET
阅读更多
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ListBoxCommonOperDemo.aspx.cs" Inherits="BusinessDealUserConfig" %>

<%@ Register Src="UCUserInfo.ascx" TagName="UCUserInfo" TagPrefix="uc" %>
<%@ Register Src="UCEmployeeBar.ascx" TagName="UCEmployeeBar" TagPrefix="uc" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <uc:UCUserInfo ID="UCUserInfo" runat="server" />
        <uc:UCEmployeeBar ID="UCEmployeeBar" runat="server" />
        <asp:Label ID="lblTile" runat="server" Text='默认流程配置'></asp:Label>
        <hr />
        <table>
            <tr>
                <td>
                    <asp:DropDownList ID="ddlJobs" runat="server" DataSourceID="odsJobs" DataTextField="JobName"
                        DataValueField="JobCode" AppendDataBoundItems="true" AutoPostBack="true">
                        <asp:ListItem Value="0">-请选择-</asp:ListItem>
                    </asp:DropDownList>
                    <br />
                    <asp:ListBox ID="lstUsers" runat="server" DataSourceID="odsUsers" DataTextField="UserName"
                        DataValueField="UserId" Width="100" Height="100"></asp:ListBox>
                </td>
                <td>
                    <asp:Button ID="btnAdd" runat="server" Text="添加" OnClick="btnAdd_Click" Style="height: 21px" /><br />
                    <asp:Button ID="btnDelete" runat="server" Text="删除" OnClick="btnDelete_Click" />
                </td>
                <td>
                    <asp:ListBox ID="lstDealUsers" runat="server" Width="100" Height="100" DataTextField="DealUserName" DataValueField="DealUserId"></asp:ListBox>
                </td>
                <td>
                    <asp:Button ID="btnUp" runat="server" Text="向上" onclick="btnUp_Click" /><br />
                    <asp:Button ID="btnDown" runat="server" Text="向下" onclick="btnDown_Click" />
                </td>
            </tr>
            <tr>
            <td colspan="4" style="text-align:center">
                <asp:Button ID="btnSave" runat="server" Text="保存" onclick="btnSave_Click" /></td>
            </tr>
        </table>
        <asp:ObjectDataSource ID="odsJobs" runat="server" SelectMethod="GetJobInfos" TypeName="GFOA.Library.UserService">
        </asp:ObjectDataSource>
        <asp:ObjectDataSource ID="odsUsers" runat="server" SelectMethod="GetEmployeesByJob"
            TypeName="GFOA.Library.UserService">
            <SelectParameters>
                <asp:ControlParameter ControlID="ddlJobs" Name="jobCode" PropertyName="SelectedValue"
                    Type="String" />
            </SelectParameters>
        </asp:ObjectDataSource>
    </div>
    </form>
</body>
</html>



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using GFOA.Library;

public partial class BusinessDealUserConfig : System.Web.UI.Page
{
    protected UserService _UserService = new UserService();
    protected DealUserConfigService _DealUserConfigService = new DealUserConfigService(); 

    /// <summary>
    /// 业务ID
    /// </summary>
    public Guid BusinessId
    {
        get
        {
            return new Guid(ViewState["BusinessId"].ToString());
        }
        set
        {
            ViewState["BusinessId"] = value;
        }
    }

    public string BusinessName
    {
        get
        {
            return (string)ViewState["BusinessName"];
        }
        set
        {
            ViewState["BusinessName"] = value;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindData();
        }
    }

    private void BindData()
    {
        lblTile.Text = Request["BusinessName"] + "——" + lblTile.Text;
        BusinessId = new Guid(Request["BusinessId"]);
        BusinessName = Request["BusinessName"];
        List<DealUserConfig> dealUserConfigs = this._DealUserConfigService.GetByBusinessId(BusinessId);
        if (dealUserConfigs != null)
        {
            lstDealUsers.DataSource = dealUserConfigs;
            lstDealUsers.DataBind();
        }
    }

    /// <summary>
    /// 添加
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        if (this.lstUsers.SelectedValue == "")
        {
            ScriptHelper.RegisterScript("alert('没有选中任何用户,请选择用户');window.history.back(-1);");
        }
        else
        {
            lstDealUsers.Items.Add(lstUsers.SelectedItem);
            lstDealUsers.SelectedIndex = 0;
        }
    }

    /// <summary>
    /// 删除
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnDelete_Click(object sender, EventArgs e)
    {
        if (this.lstDealUsers.SelectedValue == "")
        {
            ScriptHelper.RegisterScript("alert('没有选中任何用户,请选择用户');window.history.back(-1);");
        }
        else
        {
            lstDealUsers.Items.Remove(lstDealUsers.SelectedItem);
        }
    }

    /// <summary>
    /// 向上
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnUp_Click(object sender, EventArgs e)
    {
        if (lstDealUsers.SelectedIndex != 0)
        {
            ListItem tempListItem = lstDealUsers.Items[lstDealUsers.SelectedIndex - 1];

            string text = tempListItem.Text;
            string value = tempListItem.Value;
            lstDealUsers.Items[lstDealUsers.SelectedIndex - 1].Text = lstDealUsers.SelectedItem.Text;
            lstDealUsers.Items[lstDealUsers.SelectedIndex - 1].Value = lstDealUsers.SelectedItem.Value;
            lstDealUsers.Items[lstDealUsers.SelectedIndex].Text = text;
            lstDealUsers.Items[lstDealUsers.SelectedIndex].Value = value;
            lstDealUsers.SelectedIndex = lstDealUsers.SelectedIndex - 1;
            lstDealUsers.DataBind();
        }
        else
        {
            ScriptHelper.RegisterScript("alert('已经到顶了');window.history.back(-1);");
        }
    }

    /// <summary>
    /// 向下
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnDown_Click(object sender, EventArgs e)
    {
        if (lstDealUsers.SelectedIndex != lstDealUsers.Items.Count - 1)
        {
            ListItem tempListItem = lstDealUsers.Items[lstDealUsers.SelectedIndex + 1];

            string text = tempListItem.Text;
            string value = tempListItem.Value;

            lstDealUsers.Items[lstDealUsers.SelectedIndex + 1].Text = lstDealUsers.SelectedItem.Text;
            lstDealUsers.Items[lstDealUsers.SelectedIndex + 1].Value = lstDealUsers.SelectedItem.Value;
            lstDealUsers.Items[lstDealUsers.SelectedIndex].Text = text;
            lstDealUsers.Items[lstDealUsers.SelectedIndex].Value = value;
            lstDealUsers.SelectedIndex = lstDealUsers.SelectedIndex + 1;
            lstDealUsers.DataBind();
        }
        else
        {
            ScriptHelper.RegisterScript("alert('已经到底了');window.history.back(-1);");
        }
    }

    /// <summary>
    /// 保存
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSave_Click(object sender, EventArgs e)
    { 
        this._DealUserConfigService.DeleteByBusinessId(BusinessId);

        List<DealUserConfig> DealUserConfigs = new List<DealUserConfig>();
        int sortIndex =0;
        foreach (ListItem userItem in lstDealUsers.Items)
        {  
            UserInfoProxy userInfoProxy = this._UserService.GetUserInfo(Convert.ToInt32(userItem.Value));
            DealUserConfig dealUserConfig = new DealUserConfig();
            dealUserConfig.Id = Guid.NewGuid();
            dealUserConfig.BusinessId = BusinessId;
            dealUserConfig.DealUserJobCode = userInfoProxy.JobCode;
            dealUserConfig.DealUserJobName = this._UserService.GetJobInfoByCode(userInfoProxy.JobCode).JobName;
            dealUserConfig.DealUserId = Convert.ToInt32(userItem.Value);
            dealUserConfig.DealUserName = userItem.Text;
            dealUserConfig.SortIndex = sortIndex++;

            DealUserConfigs.Add(dealUserConfig);
        }

        this._DealUserConfigService.InsertDealUserConfigs(DealUserConfigs);

        ScriptHelper.MessageDialog("保存成功", "BusinessDealUserConfig.aspx?BusinessName="+BusinessName+"&BusinessId="+BusinessId);
    }
}
分享到:
评论

相关推荐

    ListBox实现上下左右移动

    这里上下移动指的是在ListBox自身内切换选中项,而左右移动则涉及到在两个ListBox之间转移选中项。 1. **上下移动**: 要实现在ListBox内的上下移动,我们可以通过响应`KeyDown`事件来检查用户按下的是上箭头或下...

    在ListBox控件间实现数据交换

    总结来说,要在WinForms的C#环境中实现两个ListBox之间数据交换,关键在于理解ListBox控件的操作,包括添加、移除项以及处理用户交互事件。通过编写适当的事件处理函数,我们可以实现单个或批量的交换操作,从而提升...

    asp.net 在ListBox控件间移动列表项源码

    以上代码片段在用户改变ListBox1的选中项时,会将选中的项移动到ListBox2。请注意,实际的代码可能需要根据具体需求进行调整,比如增加错误处理、优化性能或增强用户体验。 在提供的压缩包文件"Example086-在...

    C# WinForm两个listBox之间的Item互相拖动

    本主题聚焦于“C# WinForm两个listBox之间的Item互相拖动”这一功能,这涉及到Windows窗体应用程序中的事件处理、鼠标操作以及数据传输。下面将详细阐述实现这个功能的关键知识点。 首先,我们要了解`ListBox`控件...

    上下移动ListBox内的项winform

    本教程将深入探讨如何实现ListBox内的项上下移动的功能,这对于创建具有灵活交互性的用户界面至关重要,特别是当用户需要调整列表顺序时。 首先,我们需要理解ListBox的基本属性和方法。`ListBox`控件的主要属性...

    两个listbox之间内容转移

    在实际应用中,我们经常需要将一个Listbox中的数据移动到另一个Listbox,这通常涉及到选中项的转移或者整个Listbox内容的清空与复制。本篇文章将详细讲解如何实现"两个listbox之间内容转移",包括选中项的转移和全部...

    wpf实现拖拽效果 把一个listbox中的一条数据放到另外一个listbox中

    在本文中,我们将深入...通过这种方式,你可以在WPF应用程序中轻松实现数据项在两个ListBox之间的拖放功能,提升用户交互体验。记住,WPF的强大在于其灵活性和可定制性,所以你可以根据需求调整和扩展这个基础实现。

    listbox之间拖拽,listbox内元素拖拽排序

    2. 数据交换:在源和目标`ListBox`之间转移数据,这可能涉及复制或移动项,取决于业务需求。 通过上述步骤,你可以实现`ListBox`之间的拖放和内部元素排序功能。提供的源代码文件"Listbox拖拽"应该包含了详细的实现...

    实现ListBox控件与ListBox控件交换数据

    这个函数接受两个ListBox作为参数,将源ListBox中的选中项移动到目标ListBox中。注意,实际应用中需要根据需求处理可能的多线程问题和UI更新。 通过以上方法,你可以实现ListBox控件之间的数据交换功能,提升用户...

    WPF listbox之间拖动 drag&drop

    在Windows Presentation Foundation (WPF) 中,`ListBox` 是一个常用的数据展示控件,它可以用来显示一系列可选择的项。本教程将详细讲解如何在两个`ListBox`之间实现拖放(Drag & Drop)功能,以及如何添加上下按钮...

    ListBox动态添加数据删除数据和上移下移

    在本文中,我们将深入探讨如何在ListBox中动态地添加、删除数据,以及实现项目的上移和下移功能,所有这些操作都在无刷新的情况下进行,提供流畅的用户体验。 1. 动态添加数据: 在Windows Forms或Web应用中,可以...

    listbox数据交换(VB)

    本教程将详细讲解如何在两个Listbox之间进行数据交换,这是在开发各种应用时可能会遇到的常见需求。 首先,我们要理解Listbox的基本操作。在VB中,Listbox可以通过其内置的方法和属性来管理其中的数据。例如,`...

    ASP.NET里面左右移动的listbox

    总之,`ASP.NET`中的“左右移动的listbox”是一个自定义ASCX控件,通过提供便捷的数据转移功能,使得用户能够直观地在两个列表之间操作数据,这对于数据筛选、分类等操作非常实用。实现这一功能涉及前端HTML和后端C#...

    C#js实现ListBox左右移动

    本教程将深入探讨如何使用C#和JavaScript技术实现ListBox组件中项的左右移动功能,旨在提高用户体验并实现动态数据操作。 首先,`ListBox`是.NET Framework中的一种控件,常用于在Web应用程序中展示可多选的数据...

    C#鼠标拖动ListBox中的数据进行排序操作

    我们需要获取拖放数据,然后根据拖放的位置调整`ListBox`中的项顺序。 ```csharp private void listBox_DragDrop(object sender, DragEventArgs e) { int dropIndex = listBox.IndexFromPoint(e.X, e.Y); if ...

    VB.NET ListBox内容用鼠标拖动和按钮移动实现排序功能

    在按钮的Click事件处理程序中,我们检查ListBox的SelectedIndex,然后将选中项移动到正确的位置。 代码示例: ```vb.net Private Sub ButtonUp_Click(sender As Object, e As EventArgs) Handles ButtonUp.Click ...

    ListBox 的集体移动

    2. **分离选定与未选定项**:遍历ListBox中的所有项目,将选定的项目和未选定的项目分别存储到两个不同的集合中。这一步是关键,它允许我们分别处理选定和未选定的项目。 3. **更新ListBox**:清空ListBox,然后...

    C#listBox用鼠标拖动和按钮移动排序

    在实际应用中,可能需要对ListBox中的数据项进行封装,以便包含更多的信息,而不仅仅是显示文本。在这种情况下,可以使用自定义对象作为ListBox的DataSource,并使用DisplayMember和ValueMember属性分别指定显示的...

    ListBox实现拖拽排序功能

    在Windows Presentation Foundation (WPF) 中,`ListBox`控件是一种常用的数据展示组件,它可以用来显示一系列可选择的项。本篇文章将详细讲解如何在`ListBox`中实现拖拽排序功能,以及背后的实现原理。 首先,`...

    C#winform中ListBox拖拽排序

    在C# WinForm应用开发中,常常需要对控件中的数据进行交互操作,例如排序。本教程将详细讲解如何在ListBox控件中实现拖拽排序的功能。ListBox是.NET Framework提供的一种常用控件,用于显示一系列可选择的项目。在...

Global site tag (gtag.js) - Google Analytics