日期:2014-05-16  浏览次数:20331 次

监听当前页面某一部分超链接单击事件,事件触发后传一个值给当前超链接url,怎样实现?
监听当前页面某一部分超链接单击事件,事件触发后传一个值给当前超链接url,怎样实现?

用Asp.Net的服务器控件DataList读了一列数据,每个数据都有指向一个页面的超链接,监听该DataList中所有超链接的单击事件,如果某一个超链接被单击,就传一个值加到该超链接的Url的后面,然后在后台获取这个值,如果这个值是我指定的值,就说明该页面被访问过一次。(DataList的ID为不确定值,因为可能有很多这样的DataList都要应用到该功能,而且不会影响除DataList之外的其他超链接)

请问该如何实现,谢谢!给一个思路也可以。

------解决方案--------------------
1、
A:如果真的能达到上限,那就该恭喜你了,你可以升级硬件系统了。(这么大的访问量就不必死守着原来的配置,效益也该早就有了)
B:我说的每次访问都记录并不意味着每次访问都会增加一条记录,比如:
可以把访问记录设计成:
Id url count userId day
1 ProductList.aspx?Id=21 1 001 2007-03-13
2 ProductList.aspx?Id=8 3 001 2007-03-13
这样就可以记录,每个页面都增加一个访问计数就可以记录所有的访问;
当然你也可以不要这个计数字段,只要检查库中是否已存在该页面的记录就行了,有就可以不记录了。
(ps:每次访问都记录可不是我说的,我不过顺着你的说法评论一下而已,而且每次访问页面都获取用户ID和每次访问都记录是两回事,你即使是用url传值不也同样要检查是否已经记录过了么,所以就算每次都记录也不过是多一次数据更新而已,你还可以把记录操作都封装在一个存储过程里面,这样一次更新操作就几乎可以忽略)

如果你要提高数据库效率,应该尽量减少数据库和网站后台程序的交互,把数据库操作(包括一些固定的逻辑规则)都写到存储过程里,再花点时间做做优化。

2、当你获取页面请求的URL时,取得的是完整的url,包括参数部分……当然,如果你只需要用某个Id来区别的话,那就获取相应的参数就是,这个和你原先设想的获取URL里的用户ID不是一回事么~(就等于我所说的直接写在url上)……
当然,现在用户ID就不必写在上面了,因为可以在后台直接获取而不必用url传递。

------解决方案--------------------
哪管那么复杂?本质上不就是打算某个链接被点击的时候能够对发送的URL做改动嘛。楼主参考下面的方式就是了。

function SetAhref(Item)
{
Item.href += "?param= " + "ParamValue ";
}


<td>
<div align= "center "> <a href= "www.abc.com/index.htm " onClick= "SetAhref(this) "> 链接文字 </a> </div>
</td>
------解决方案--------------------
不知道我看明白你的意思没有,你的要求貌似是这样的,你另存下面代码试试,看合你要求不?

1、像上面有人说的,一开始在链接标签里加个onclick事件,用于你加参数处理
  缺点:如果页面多,链接多。要一个个添加,麻烦
2、可以遍历你指定DataList里的连接,在onclick事件上加上你的函数9attachEvent)
3、如下代码,跟第2条有些类似,这个只是遍历少点

<script>
document.onclick = function(){
var objParent = document.getElementById( "tabTest ");
var obj = window.event.srcElement ;

if(obj && obj.tagName.toUpperCase()== "A "){
for(var i = 0; i < objParent.all.length; i++){
if(objParent.all(i)==obj){
if(obj.href.indexOf( "? ") <0)
obj.href+= "? "
else
obj.href+= "& "

obj.href+= "p=冷风工作室 "
}
}
}

return true;
}
</script>

<body>
这里有dkdkdlsldldld <a href= "http://www.google.com/search?q=net205 "> 测试链接 </a>
<table width= "100% " border= "0 " id= "tabTest " name= "tabTest ">
<tr>
<th width= "15% " height= "25 "> 序号 </th>
<th width= "47% "> 标题 </th>
<th width= "19% "> 作者 </th>
<th width= "19% "> 时间 </th>
</tr>
<tr>
<td align= "center "> 1 </td>
<td> <a href= "http://community.csdn.net/index.aspx?tt=332 "> 11111 </a> </td>
<td align= "center "> aaaaa </td>
<td align= "center "> 2007-3-14 </td>
</tr>
<tr>
<td align= "center "> 2 </td>
<td> <a href= "abc.asp "> 22222 </a> </td>
<td align= "center "> addsd </td>
<td align= "center "> 2