ASP.NET ListBox的使用与其上下移动方法
2015-04-03 11:29
417 查看
//前台
<table id="TableOne" runat="server" style="text-align: center; width: 280px; height: 303px;">
<tr>
<td>
<asp:Panel ID="panTwo" runat="server">
<asp:Button runat="server" Text="↑" class="buttonCss" ID="BtnUp" OnClick="BtnUp_Click">
</asp:Button>
<asp:Button runat="server" Text="↓" class="buttonCss" ID="BtnDown" OnClick="BtnDown_Click">
</asp:Button>
</asp:Panel>
</td>
<td>
<asp:ListBox ID="listType" Style="margin-left: 10px;" runat="server" Width="180px"
Height="400px" SelectionMode="Multiple"></asp:ListBox>
</td>
</tr>
</table>
//后台
/// <summary>
/// 初始化数据
/// </summary>
private void Databind()
{
DataTable dt = GetTreeViewData();
DataView view = new DataView(dt);
foreach (DataRowView row in view)
{
listType.Items.Add(new ListItem(row["Name"].ToString(), row["Id"].ToString()));
}
}
/// <summary>
/// 上移
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnUp_Click(object sender, EventArgs e)
{
// 没有项,或第一个选中节点已经是第一项,则不处理
if (this.listType.Items.Count == 0 || this.listType.Items[0].Selected) return;
for (int i = 1; i < this.listType.Items.Count; i++)
{
if (this.listType.Items[i].Selected)
ChangeProperty(this.listType.Items[i - 1], this.listType.Items[i]);
}
}
/// <summary>
/// 下移
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnDown_Click(object sender, EventArgs e)
{
// 没有项,或最后一个选中节点已经是第一项,则不处理
if (this.listType.Items.Count == 0 || this.listType.Items[this.listType.Items.Count - 1].Selected) return;
for (int i = this.listType.Items.Count - 1; i > -1; i--)
{
if (this.listType.Items[i].Selected)
ChangeProperty(this.listType.Items[i], this.listType.Items[i + 1]);
}
}
/// <summary>
/// 上下移动方法
/// </summary>
/// <param name="fFront"></param>
/// <param name="fCurrent"></param>
private static void ChangeProperty(ListItem fFront, ListItem fCurrent)
{
string fText = fFront.Text;
string fValue = fFront.Value;
bool fSelected = fFront.Selected;
fFront.Text = fCurrent.Text;
fFront.Value = fCurrent.Value;
fFront.Selected = fCurrent.Selected;
fCurrent.Text = fText;
fCurrent.Value = fValue;
fCurrent.Selected = fSelected;
}
<table id="TableOne" runat="server" style="text-align: center; width: 280px; height: 303px;">
<tr>
<td>
<asp:Panel ID="panTwo" runat="server">
<asp:Button runat="server" Text="↑" class="buttonCss" ID="BtnUp" OnClick="BtnUp_Click">
</asp:Button>
<asp:Button runat="server" Text="↓" class="buttonCss" ID="BtnDown" OnClick="BtnDown_Click">
</asp:Button>
</asp:Panel>
</td>
<td>
<asp:ListBox ID="listType" Style="margin-left: 10px;" runat="server" Width="180px"
Height="400px" SelectionMode="Multiple"></asp:ListBox>
</td>
</tr>
</table>
//后台
/// <summary>
/// 初始化数据
/// </summary>
private void Databind()
{
DataTable dt = GetTreeViewData();
DataView view = new DataView(dt);
foreach (DataRowView row in view)
{
listType.Items.Add(new ListItem(row["Name"].ToString(), row["Id"].ToString()));
}
}
/// <summary>
/// 上移
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnUp_Click(object sender, EventArgs e)
{
// 没有项,或第一个选中节点已经是第一项,则不处理
if (this.listType.Items.Count == 0 || this.listType.Items[0].Selected) return;
for (int i = 1; i < this.listType.Items.Count; i++)
{
if (this.listType.Items[i].Selected)
ChangeProperty(this.listType.Items[i - 1], this.listType.Items[i]);
}
}
/// <summary>
/// 下移
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnDown_Click(object sender, EventArgs e)
{
// 没有项,或最后一个选中节点已经是第一项,则不处理
if (this.listType.Items.Count == 0 || this.listType.Items[this.listType.Items.Count - 1].Selected) return;
for (int i = this.listType.Items.Count - 1; i > -1; i--)
{
if (this.listType.Items[i].Selected)
ChangeProperty(this.listType.Items[i], this.listType.Items[i + 1]);
}
}
/// <summary>
/// 上下移动方法
/// </summary>
/// <param name="fFront"></param>
/// <param name="fCurrent"></param>
private static void ChangeProperty(ListItem fFront, ListItem fCurrent)
{
string fText = fFront.Text;
string fValue = fFront.Value;
bool fSelected = fFront.Selected;
fFront.Text = fCurrent.Text;
fFront.Value = fCurrent.Value;
fFront.Selected = fCurrent.Selected;
fCurrent.Text = fText;
fCurrent.Value = fValue;
fCurrent.Selected = fSelected;
}
相关文章推荐
- 使用ASP.NET开发移动通讯的几种方法
- vs2005制做左右上下移动的Listbox ( asp.net , C#)
- ASP.NET中 ListBox列表框控件的使用方法
- listbox 上下移动 (asp.net C#)
- vs2005制做左右上下移动的Listbox ( asp.net , C#)
- ASP.NET中 ListBox列表框控件的使用方法
- 在ASP.Net 中使用实现windows登陆的方法. (轉自tainkai的專欄.http://blog.csdn.net/tainkai)
- 简介使用ASP.NET访问Oracle数据库的方法
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- 如何在ASP.NET中制作Web用户自定义控件,并在aspx页面中使用它的方法和属性?
- ASP.NET 2.0中的数据库链接字符串的使用方法
- 在Asp.Net中使用SmtpMail发送邮件的方法
- MattPowell介绍了如何在服务器端使用异步Web方法,来创建高性能的 Microsoft ASP.NET Web 服务
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- asp.net报表解决方法(第一次使用cnblogs的blog)
- 将图片插入数据库并使用asp.net读取出来的正确方法
- 使用 NDoc 对 asp.net (Web) 项目产生文档的方法
- 平时在做ASP.NET项目里经常使用的一些函数和方法
- 在Asp.Net中使用SmtpMail发送邮件的方法
- Asp.net中对像使用继承的方法(:)