一道面试题

buduanxuexi 2008-02-26 03:10:45
在一个webForm界面上放三个图片,然后在页面中任意拖放这三个图片,重新刷新页面后,图片处于拖放后的新位置
如果需要保持位置数据,将其放在xml文件中保存.
...全文
234 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tang5399 2008-02-27
  • 打赏
  • 举报
回复
和05年我出的面试题一样,这谁还让你回来做?
js记录位置然后写xml很简单
fcuandy 2008-02-26
  • 打赏
  • 举报
回复
js拖放的脚本是复制的. 就是简单的dhtml操作而已.
fcuandy 2008-02-26
  • 打赏
  • 举报
回复
用 xml + xsl + js + cs给你做了个完整的例子.

当然,只是实现基本的功能,细节上没有好好处理.仅仅供参考.


test.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<root>
<pic id="1" src="1.gif" />
<pic id="2" src="2.gif" />
<pic id="3" src="3.gif" />
</root>



test.xsl

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<head>
<script language="JavaScript">
drag = 0
move = 0

function init() {
window.document.onmousemove = mouseMove
window.document.onmousedown = mouseDown
window.document.onmouseup = mouseUp
window.document.ondragstart = mouseStop
}

function mouseDown() {
if (drag) {
clickleft = window.event.x - parseInt(dragObj.style.left)
clicktop = window.event.y - parseInt(dragObj.style.top)
dragObj.style.zIndex += 1
move = 1
}
}

function mouseStop() {
window.event.returnValue = false
}

function mouseMove() {
if (move) {
dragObj.style.left = window.event.x - clickleft
dragObj.style.top = window.event.y - clicktop
}
}

function mouseUp() {
move = 0
//alert(dragObj.style.top.replace("px","") /90 );
switch(parseInt(dragObj.style.top.replace("px","") /90))
{
case 0:
switchPosition(1)
break;
case 1:
if(dragObj.style.top.replace("px","") % 90 ==0)
{
switchPosition(1)
}
else
{
switchPosition(2)
}
break;
case 2:
if(dragObj.style.top.replace("px","") % 90 ==0)
{
switchPosition(2)
}
else
{
switchPosition(3)
}
default:
if((dragObj.style.top.replace("px","") / 90) <xsl:text disable-output-escaping="yes"><![CDATA[<]]></xsl:text> 1)
{
switchPosition(1)
}
else
{
switchPosition(3)
}
break;

}
dragObj.style.left = 200;
}

function switchPosition(newid)
{
var oldid = dragObj.id.replace("img_","")
//alert(oldid)
if(oldid==newid)
{
dragObj.style.top = oldid * 90;
return;
}
else
{
//alert(oldid==newid);
dragObj.style.top = newid * 90;
var obj = document.getElementById("img_" + newid);
obj.style.top = oldid * 90;

obj.id = "xxx";
dragObj.id = "img_" + newid;
obj.id="img_" + oldid;

var dataurl = "xmlData.aspx?act=process<xsl:text disable-output-escaping ="yes"><![CDATA[&]]></xsl:text>oldid="+oldid+"<xsl:text disable-output-escaping ="yes"><![CDATA[&]]></xsl:text>newid="+newid;
alert(dataurl);
var x = new ActiveXObject("Msxml2.XMLHTTP");
x.open("GET",dataurl, false);
x.send(null);

//document.writeln(x.responseText);



}
}
</script>

</head>
<body onload="init()" >
<xsl:for-each select="//pic">
<xsl:sort data-type="number" order="ascending" select="@id"/>
<div id="div_{position()}">
<img id="img_{position()}" src="{@src}" onmouseout="drag=0" onmouseover="dragObj=img_{position()};drag=1;" style="HEIGHT:90px;LEFT:200px;POSITION:absolute;TOP:{90*position()}px;WIDTH:90px"/>
</div>
</xsl:for-each>
</body>
</xsl:template>
</xsl:stylesheet>


xmlData.aspx.cs


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Xml.Xsl;
public partial class xmlData : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request["act"] != null)
{
processXML();
}
else
{
Response.Write(TransForm(getXmlData(), "test.xsl", Page));
}
}

private void processXML()
{
if (Request["act"].ToString().ToUpper() != "PROCESS")
{
return;
}

XmlDocument xd = getXmlData();
//注意看这里,其实xml也可以注入的,哈哈。
XmlNode xn = xd.SelectSingleNode("//pic[@id=" + Request["oldid"].ToString() + "]");
xn.Attributes["id"].Value = Request["newid"];
XmlNode xn1 = xd.SelectSingleNode("//pic[@id=" + Request["newid"].ToString() + "]");
xn1.Attributes["id"].Value = Request["oldid"];
xd.Save(Server.MapPath("test.xml"));
//Response.Write(xd.InnerXml);
xd = null;
}

private XmlDocument getXmlData()
{
XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("test.xml"));
return xd;

}


private string TransForm(XmlDocument xd, string xslURL, System.Web.UI.Page page)
{
XslTransform xsl = new XslTransform();
xsl.Load(page.Server.MapPath(xslURL));
System.IO.MemoryStream t = new System.IO.MemoryStream();
xsl.Transform(xd, null, t, null);
return System.Text.UTF8Encoding.UTF8.GetString(t.ToArray());
}
}
FollowCN 2008-02-26
  • 打赏
  • 举报
回复
可以利用WebPart实现,采用XML存储个性化数据即可
貌似正解。
7仔 2008-02-26
  • 打赏
  • 举报
回复
是不是类似chinaren的那种功能;使用vs2005的webparts控件就可以实现
chieftech 2008-02-26
  • 打赏
  • 举报
回复
可以利用WebPart实现,采用XML存储个性化数据即可
Pig23 2008-02-26
  • 打赏
  • 举报
回复
这个用js就可以了,记录坐标写入xml
buduanxuexi 2008-02-26
  • 打赏
  • 举报
回复
是的,就是页面上放三张图片,随意拖动,拖动后的位置保存在XML文件中,请大家具体点,能否给出实例来,
我对AJAX不太熟悉,谢谢大家了
Animatrix 2008-02-26
  • 打赏
  • 举报
回复
不会,顶~
tang5399 2008-02-26
  • 打赏
  • 举报
回复
如果只在本机上的话用js就可以直接写到文件
要放服务器上的话用ajax
zpcoder 2008-02-26
  • 打赏
  • 举报
回复
看不懂。是不是。
如果需要保持位置数据,将其放在xml文件中保存.

改成

如果需要保持位置数据,如何将其放在xml文件中保存?
xz_xq 2008-02-26
  • 打赏
  • 举报
回复
AJAX实现ZL的需求会比较容易写
「已注销」 2008-02-26
  • 打赏
  • 举报
回复
飘。。。
buduanxuexi 2008-02-26
  • 打赏
  • 举报
回复
要使用到AJAX技术,(*^__^*) 嘻嘻……
昨日,11.19,最新整理了,第61-80题,现在公布上传。 另加上之前公布的第1-60 题,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的面试题,都是这100 道题系列的翻版, 此微软等公司数据结构+算法面试100 题系列,是极具代表性的经典面试题。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 题[第21-40 题答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 题[前20 题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 题[前25 题] http://download.csdn.net/source/2796735 题目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 题[1-40 题] http://download.csdn.net/source/2778852 5.[第1 题-60 题汇总]微软等数据结构+算法面试100 题 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何题目或任何答案,有任何问题,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何题目或资源享有版权。转载以上公布的任何一题, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
此为我个人搜集整理的, 精选微软等公司,有关 数据结构和算法的面试100题[前40题], 此绝对值得你下载收藏。 网友yui评论,真是够多的了,从此,不用再看其它面试题.... 一句话,请享用。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 2.[第1题-60题汇总]微软等数据结构+算法面试100题 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100题[前41-60题]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100题[1-40题] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ //请继续期待,后续内容。 ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html -------July、2010年12月2日。
精选微软等数据结构+算法面试100题答案修正V0.2版本 -------------------- 此份答案是针对,前期已公布的最初的那份答案的,初步校正与修正。 http://download.csdn.net/source/2796735(V0.1版) 相比第一份V0.1版答案,此份答案V0.2版更加准确,亦修正了不少题目的答案。 此份20题的答案,思路更加清晰易懂,简介明了。 请享用。July、2010/11/06。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 2.[第1题-60题汇总]微软等数据结构+算法面试100题 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100题[前41-60题]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100题[1-40题] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
火爆出炉:微软等数据结构+算法面试100题首次完整亮相 ---100题V0.1版最终完成 作者:July 2010年12月6日 微软等100题系列V0.1版终于结束了。 从2010年10月11日当天最初发表前40题以来,直至此刻,整理这100题,已有近2个月。 2个月,因为要整理这100题,很多很多其它的事都被我强迫性的搁置一旁, 如今,要好好专心去做因这100题而被耽误的、其它的事了。 这微软等数据结构+算法面试100题系列(题目+答案),到底现在、或此刻、或未来, 对初学者有多大的意义,在此,我就不给予评说了。 由他们自己来认定。所谓,公道自在人心,我相信这句话。 任何人,对以下任何资料、题目、或答案,有任何问题,欢迎联系我。 作者邮箱: zhoulei0907@yahoo.cn 作者声明: 转载或引用以下任何资料、或题目,请注明作者本人July及出处。 向您的厚道致敬,谢谢。 好了,请享受这完完整整的100题吧,这可是首次完整亮相哦。:D。 ............ ............ 答案系列: 5.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 6.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 7.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 剩下的第41-100题答案,正在整理中。预计明年整理公布。 请各位,细心的等待。谢谢。 更多资源,下载地址: http://v_july_v.download.csdn.net/ ================================== 更多详情,请参见本人博客: My Blog: http://blog.csdn.net/v_JULY_v --------------------------------------------------------------------------------------- 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

62,046

社区成员

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

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

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

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