本文转自:http://blog.csdn.net/lolenboy/article/details/1665814

说明:

环境:ASPNET(c#),SQL2K

事例:TEXTBOX下跟随DIV,在TEXTBOX中输入内容,DIV上就显示出相应的查询结果[AJAX],类似于股票输入查询。

 页面:一个显示页面(FilialeList);一个后台处理中间文件,一个数据库操作文件,JS操作文件。

显示页面FilialeList:

关键代码 :

调用JS文件

<script language="javascript" src="../JScript/PubJSFunction.js" type="text/javascript"></script>

//当DIV显示后,点击页面其他地方,DIV隐藏。

<body style="margin: 0px" onclick="f_blur()">

//输入的代码框和相应的DIV的HTML,注意中间文件(PubGetTxtCode.aspx')路径

<td>
编码:<asp:TextBox ID="txt_Code" runat="server" Width="110px" CssClass="input1" onkeyup="f_KeyUp('txt_Code','filiale','../Pub/PubGetTxtCode.aspx')"></asp:TextBox>
<div id="divOrders" class="div_Code" style="display: none;">
</div>
</td> //隐藏对象记录要隐藏哪个DIV的ID(假如页面有好几个输入框和好几个对应的DIV,本例子是页面只有1个输入框和1个DIV) <input id="hid_DivID" type="hidden" /> 中间文件(PubGetTxtCode.aspx): protected void Page_Load(object sender, EventArgs e)
{
DataTable dtNew = new DataTable();
Common.PubGetTxtCode valueObj = new Common.PubGetTxtCode();
int li_Return = 0;
string ls_ErrText = "";
string mystr = "";
string funName = "";
if (!this.IsPostBack)
{ string Type = Request["Type"].Trim().ToString();
string Code = Request["ls_Code"].Trim().ToString();
# region Swithch(type)
switch (Type)
{
#region 基础资料
case "filiale":
mystr = "编码" + "||||" + "名称";
li_Return = valueObj.GetFiliales(Code, dtNew, ref ls_ErrText);
break; .... } if(li_Return>0) { for (int i = 0; i < dtNew.Rows.Count; i++)
{
mystr += ",,,," + dtNew.Rows[i][0].ToString() + "||||" + dtNew.Rows[i][1].ToString();
} } this.Response.Write(mystr);
this.Response.End(); } //数据库操作文件:(获取10条记录) public int GetFiliales(string Code, DataTable dt, ref string ErrText)
{
string ls_Sql;
int ErrCode;
try
{
ls_Sql = "select Top 10 FilialeID,FilialeName from Filiales where FilialeID LIKE '" + Code + "%' AND Status='1'";
ErrCode = _cmd.GetData(ls_Sql, dt);
ErrText = "";
}
catch (System.Exception e)
{
ErrCode = -1900110;
ErrText = e.Message.ToString();
}
return ErrCode;
} //JS文件: //焦点控制
function f_blur()
{
var divID = document.all("hid_DivID").value;
if(document.all("hid_DivID").value!="")
{
document.getElementById(divID).style.display="none";
}
} //获取编码放到TextBox里
function f_GetCode(txtID,value)
{
document.all(txtID).value = value;
document.getElementById("divOrders").style.display="none";
} //生成DIV内容的HTML function f_KeyUp(txtID,type,src)
{
document.all("hid_DivID").value="divOrders";
document.all("divOrders").innerHTML = "";
var ls_Code = document.all(txtID).value;
ls_Code=ls_Code.replace(/ +/, "");
ls_Code=ls_Code.replace(/ +$/,""); if(ls_Code == "")
{
document.getElementById("divOrders").style.display="none";
return;
}
else
{
var webFileUrl = src+"?s="+Math.random()+"&Type="+type+"&ls_Code="+ls_Code;
var result = "";
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlHttp.open("POST", webFileUrl, false);
xmlHttp.send("");
result = xmlHttp.responseText;
if(result != "")
{
document.getElementById("divOrders").style.display="";
var piArray = result.split(",,,,");
if(piArray.length==1)
{
document.all("divOrders").style.display="none";
return;
} var html ="<Table border='0' width='100%' align='center' cellpadding='2' cellspacing='2'>"; for(var i=0;i<piArray.length;i++)
{
var ary1 = piArray[i].toString().split("||||");
if (i==0)
{
html+="<Tr style=/"background-color:#CDD0D3 ;/">";
}
else
{
html+="<Tr style=/"background-color:#CDD0D3 ;/" onmouseover=/"c=this.style.backgroundColor;this.style.backgroundColor='#A7A9AC';/" onmouseout=/"this.style.backgroundColor=c;/" onclick=/"f_GetCode('"+txtID+"','"+ary1[0]+"')/">";
}
if(i==0)
{
html+="<td width=/"40%/">";
html+=ary1[0];
html+="</td>";
html+="<td width=/"60%/">";
html+=ary1[1];
html+="</td>";
html+="</Tr>";
}
else
{
html+="<td>";
html+=ary1[0];
html+="</td>";
html+="<td>";
html+=ary1[1];
html+="</td>";
html+="</Tr>";
}
} html+="</Table>";
html+="<iframe src=/"javascript:false/" style=/"Z-INDEX:-1;POSITION:absolute; FILTER:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0); VISIBILITY:inherit;TOP:0px;WIDTH:100%;HEIGHT:100%;/"></iframe>"
document.all("divOrders").innerHTML= html;
ShowDiv("divOrders",txtID);
}
else
{
document.all("divOrders").style.display="none";
}
}
} function ShowDiv(divID,txtID)
{
document.all(divID).style.display = "";
//SelectOrder 是要显示的层的ID
var drp = document.all(divID);
var obj = document.all(txtID);
//btnOrderIn 是要显示在的目标控件的ID
if(drp)
{
var objs = obj;
var t = obj.offsetTop, h = obj.clientHeight, l = obj.offsetLeft, p = obj.type;
while (obj = obj.offsetParent){t += obj.offsetTop; l += obj.offsetLeft;}
var cw = drp.clientWidth, ch = drp.clientHeight;
var dw = document.body.clientWidth, dl = document.body.scrollLeft, dt = document.body.scrollTop;
if (document.body.clientHeight + dt - t - h >= ch)
drp.style.top = (p=='image')? t + h : t + h + 6;
else
drp.style.top = (t - dt < ch) ? ((p=='image')? t + h : t + h + 6) : t - ch;
if (dw + dl - l >= cw)
drp.style.left = l;
else
drp.style.left = (dw >= cw) ? dw - cw + dl : dl;
drp.style.visibility = 'visible';
}
} //假如页面有几个TEXTBOX和几个相应的DIV的时候,可以把divID作为参数传进来。

[转]关于ASP.NET(C#)程序中TEXTBOX下动态DIV跟随[AJAX应用]的更多相关文章

  1. 在ASP.NET应用程序中使用身份模拟(Impersonation)

    摘要   缺省情况下,ASP.NET应用程序以本机的ASPNET帐号运行,该帐号属于普通用户组,权限受到一定的限制,以保障ASP.NET应用程序运行的安全.但是有时需要某个ASP.NET应用程序或者程 ...

  2. 如何在 ASP.NET 应用程序中实现模拟用户身份(在ASP.NET中以管理员身份运行网站)

    前言 在实际的项目开发中,我们可能会需要调用一些非托管程序,而有些非托管程序需要有更高的身份权限才能正确执行.本文介绍了如何让IIS承载的ASP.NET网站以特定的账户执行,比如Administrat ...

  3. ASP.NET MVC程序中动态修改form的Action值

    在练习ASP.NET MVC时,为了实现一个小功能,POST数据至服务器执行时,需要动态修改form的action值. 下面Insus.NET列举一个例子来演示它.让它简单,明白易了解. 你可以在控制 ...

  4. ASP.NET MVC学习中记录下使用JavaScript和CSS层叠样式表的经历

    首先我是想要在ASP.NET MVC 5.0中使用从jQuery之家下载下来的插件. 在下载了许多我觉得好用方便的插件之后,我在VS2017中新建了一个项目叫MVCTest,然后选择MVC模板,等待自 ...

  5. cocos2dx中android下动态更新.so文件

    作者:HU 转载请注明,原文链接:http://www.cnblogs.com/xioapingguo/p/4037595.html  因为没用lua脚本写游戏,所以每次发布出去后,发现在bug,需要 ...

  6. 在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能

    在ASP.NET MVC应用程序中,如果使用Server.Transfer()方法希望将请求转发到其它路径或者Http处理程序进行处理,都会引发“为xxx执行子请求时出错”的HttpException ...

  7. 在ASP.NET 5应用程序中的跨域请求功能详解

    在ASP.NET 5应用程序中的跨域请求功能详解 浏览器安全阻止了一个网页中向另外一个域提交请求,这个限制叫做同域策咯(same-origin policy),这组织了一个恶意网站从另外一个网站读取敏 ...

  8. 提高ASP.NET应用程序性能的十大方法

    一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的 ...

  9. ASP.NET网站开发中的配置文件

    来源:微信公众号CodeL 1.配置文件层次分类 Machine.config:  对.netframework整体的配置 web.config(framework目录下):  对所有项目所公有的应用 ...

随机推荐

  1. cos

    Apple过于封闭,没啥朋友,这家伙应该比较高傲,曾仅和Intel,IBM and so on..一起玩过!Google过于开放,狐朋狗友,友人泛滥,殃及ecosystem,弊端已显,祸水将至.COS ...

  2. 对"一维最大子数组和"问题的思考(homework-01)

    一维最大子数组和问题,即给定一个数组,在它所有的连续子数组的和中,求最大的那个和.“最大子数组和”是一个很好的IT面试考题,在<编程之美>一书中同时阐述了一维数组和二维数组的讨论.本篇博客 ...

  3. Shell统计报表表格生成

    基本需求 分析完数据后,一般需要将数据以附件的形式发送处理,这个已经在<>中有介绍,如何 用Python实现附件的发送. 但不是所有人都关心附件的内容,一般邮件中需要有些概要的信息,如附件 ...

  4. Windows 下整理内存工具推荐——cleanmem

    ---恢复内容开始--- cleanmem 是个不错的内存整理工具,www.xdown.com 下载有便携版提供下载. 软件有pro版和free版,一般情况下,free版够用了,没必要用pro版. p ...

  5. 嵌入式LINUX入门到实践(一)

    MINI2440 IIC协议 IIC协议在工程中应用广泛,在我看来,此协议的优势就在于其硬件及其简单,结构清晰. 首先来解读一下S3C2440A这款芯片的IIC协议. 一.一个协议的解读从如上结构图中 ...

  6. error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏的解决方案

    首先,卸载相关的软件,然后删除所有和virtual studio相关的目录 然后如果还出现该问题,则: Mark一下,解决方法:将嵌入清单设置为"否" 发生场合:在用 C++写一个 ...

  7. C语言单向循环链表解决约瑟夫问题

    据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,4 ...

  8. java堆栈

    一.堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存 ...

  9. ASP.NET MVC 验证

  10. goldengate的HANDLECOLLISIONS参数

    HANDLECOLLISIONS 是一个 replicat 进程参数,主要在 initial load 中使用. 在 replicat 进程中使用该参数时,即使目标数据库环境中存在数据完整性问题(如 ...