点击列表某个字段的链接,在当前页弹出一个窗口显示详细信息

首先先贴页面的代码吧

<link href="../css/core.css" type="text/css" rel="stylesheet"/>//弹窗的样式
<script src="../js/popup_layer.js" type="text/javascript" ></script>//调用弹窗的js控制
<script type="text/javascript" src="../js/jquery-1.4.2.js" ></script>//有用到jquery


<script type="text/javascript">
function clickA(e) {
//e表示传入的对象
var el = e; //这样赋值主要是防止e的值被修改了
var et = e;
var elW = el.offsetWidth; //获取对应控件的宽度

eLeft = el.offsetLeft; //获取该控件相对左边位置
/* offsetLeft是相对父层的位置,如果要取窗口的,则需要一直往上 */
while (el.offsetParent != null) {
eParent = el.offsetParent
eLeft += eParent.offsetLeft
el = eParent
}


//同上
eTop = et.offsetTop;
while (et.offsetParent != null) {
eParent = et.offsetParent
eTop += eParent.offsetTop // Add parent top position
et = eParent
}
/******************以上代码暂时用不到,后面会解释************************/
var ctlid = e.id; //获取该控件的id,记住是小写
new PopupLayer({ trigger: "#" + ctlid, popupBlk: "#blk2", closeBtn: "#close2",
offsets: {
x: eLeft + elW,
y: -41
}
});
//上面这个是调用别人写的弹窗,参数说明下
/*
trigger 控件的 id/以及标签,例如a标签就写个a,记住这边都是用jquery来写的
popupBlk 要显示控件的id
closeBtn 关闭窗口的a标签控件id,这个不要修改,参考下面
offsets 定义x,y坐标. x指定离所要点击列的横向左边, y坐标在js已经写好了。
*/
/**这边又有奇怪现象,要说说下
当指定列表(gridView)其中一个字段为a标签,那么生成的时候多个a,但是id是一样的,如果指定trigger是id的话,那么只有第一个a标签可以看见详细信息。
所以一定要指定为标签,写上a即可,那么所有选中a标签的都可以弹出来了,但是弹出窗口位置始终在一个地方,那么最上面代码就有用了,将其循环,这样y坐标就动态了。
**/
//var CustId = e.custid;
var CustId = e.attributes["custid"].nodeValue; //为了兼容谷歌等
/*上面这个也很有意思,其实该标签并没有custid这个属性,我开始时是用Title,其实asp:LinkButton是没有这个属性的,应该是叫ToolTip,但是运行后会变成a标签,a标签是有Title的,所以可以加,但是如果你两个一起加,那么以ToolTip为主,Title就会失效。
原来是想传递主键用个属性来,鼠标移上去提示名称,结果发现属性不够用,于是就随便把custid拿去试用下,发现竟然可以,不过谷歌不行,于是采用第二种,二者都兼容了。
*/
//用到了jquery的ajax方法,指定需要返回数据的页面,其他照抄吧,对这目前研究很少。
$(".ajax.load").load("../Association/CustInfo.aspx?CustId=" + CustId,
function(responseText, textStatus, XMLHttpRequest) {
this;
})
return false;
}
</script>



<asp:TemplateField HeaderText="客户名称">
<ItemTemplate>
<%-- <button title='<%#Eval("CustId") %>' id="btnload" ><%#Eval("CustName") %></button>--%>
<asp:LinkButton ID="btnload" custid='<%#Eval("CustId") %>' runat="server" OnClientClick="return clickA(this);return false;" ToolTip='<%#Eval("CustName") %>' CssClass="content" ><%#Eval("CustName") %></asp:LinkButton>
<%-- <a href="javascript:clickA()" title='<%#Eval("CustId") %>' id="btnload" ><%#Eval("CustName") %></a>--%>
</ItemTemplate>
</asp:TemplateField>
/* form之前写以下代码 */
<div id="blk2" class="blk" style="display:none;">
<div class="head"><div class="head-right"></div></div>
<div class="main">
<a href="javascript:void(0)" id="close2" class="closeBtn">关闭</a>
<label id="show" class="ajax load"></label> //这句是显示返回的数据的,目前不明白为什么 class里面写 ajax load就能接收到数据
</div>
<div class="foot"><div class="foot-right"></div></div>
</div>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值