如何交换两个Panel的位置?

flyskylf 2008-10-05 05:22:49
一个Table(一行两列)每个单元格里面有一个Panel,如何点击一个Button交换两个Panel的位置?
...全文
249 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
JOSHUATSUEI 2008-10-08
  • 打赏
  • 举报
回复
你要做的根本需求不会是类似Google的WebPart吧,为什么要按钮呢,感觉需求比较怪,能否说一下具体应用在什么地方,可能有更好的解决方案。
namhyuk 2008-10-08
  • 打赏
  • 举报
回复

<table style="width: 100%;" id="table1" runat="server">
<tr>
<td>
<asp:Panel ID="Panel1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label1" />
</asp:Panel>
</td>
<td>
<asp:Panel ID="Panel2" runat="server">
<asp:Label ID="Label2" runat="server" Text="Label2" />
</asp:Panel>
</td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="Button1" runat="server" Text="点击交换Panel位置"
onclick="Button1_Click" />
</td>
</tr>
</table>


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
ViewState["Swap"] = false;



}

protected void Button1_Click(object sender, EventArgs e)
{
bool swap = (bool)ViewState["Swap"];
swap = !swap;
if (swap)
{
table1.Rows[0].Cells[0].Controls.Remove(Panel1);
table1.Rows[0].Cells[0].Controls.Add(Panel2);
table1.Rows[0].Cells[1].Controls.Remove(Panel2);
table1.Rows[0].Cells[1].Controls.Add(Panel1);
}
else
{
table1.Rows[0].Cells[0].Controls.Remove(Panel2);
table1.Rows[0].Cells[0].Controls.Add(Panel1);
table1.Rows[0].Cells[1].Controls.Remove(Panel1);
table1.Rows[0].Cells[1].Controls.Add(Panel2);
}
ViewState["Swap"] = swap;

}
mengxj85 2008-10-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vitamin_ease 的回复:]
思路:
button的onClick="switch"
function:switch()中,通过DOM来操作,交换两个PANEL

javascript不是很熟,好像是这样的:
var table=document.getElementById("table1");
var panel1=table.childNodes[0];
var panel2=table.childNodes[1];
table.removeNamedItem(panel1);
table.removeNamedItem(panel2);
table.appendChild(panel2);
table.appendChild(panel1);
[/Quote]
这个看起来挺好的,试试看吧,
-----
给另外一种思路,有些土。
每个单元格里放两个Panel,通过隐藏Panel来实现楼主的效果。
liuwei52 2008-10-05
  • 打赏
  • 举报
回复
this.panel1.location=new point(x,y);
this.panel2.location=new point(x,y);
x,y是坐标,你试试了`!!!
vitamin_ease 2008-10-05
  • 打赏
  • 举报
回复
思路:
button的onClick="switch"
function:switch()中,通过DOM来操作,交换两个PANEL

javascript不是很熟,好像是这样的:
var table=document.getElementById("table1");
var panel1=table.childNodes[0];
var panel2=table.childNodes[1];
table.removeNamedItem(panel1);
table.removeNamedItem(panel2);
table.appendChild(panel2);
table.appendChild(panel1);

  • 打赏
  • 举报
回复
sorry, 发错了帖子。
  • 打赏
  • 举报
回复
如果需要比较准确地对齐排版,使用<table>.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧