日期:2014-05-17  浏览次数:20482 次

[问题]令超链接<a>标签触发事件
页面需动态添加多个超链接,且每个超链接引发同一事件函数,给该事件传递不同参数。 
  
查到资料,可以用onclick=__doPostBack加上javascript完成,我是这么写的:

 
//aspx文件中 
 <a id="ff" onclick="__doPostBack('this',1)" runat="server" class="buttonLink" >try</a> 
 
 //插入的html代码  
 <script language="javascript" type="text/javascript"> 
         function __doPostBack(eventTarget, eventArgument) { 
             if (!theForm.onsubmit || (theForm.onsubmit() != false)){ 
                 theForm.__EVENTTARGET.value = eventTarget; 
                 theForm.__EVENTARGUMENT.value = eventArgument; 
                 theForm.submit(); 
             } 
         } 
      </script> 
   
   
 //cs文件中: 
 protected void Page_Load(object sender, EventArgs e) 
     { 
           
         if (Page.IsPostBack) { 
             int Fid=Int32.Parse(Request.Form["__EVENTARGUMENT"]); 
             Session["Fid"]=Fid; 
             Response.Redirect("SingleItem.aspx"); 
         } 
     }


代码添加后,点击超链接,能运行成功。 
但手贱不知道改动了什么后,点击超链接就没反应了,目测是没有执行javascript代码。 
大半夜脑子糊,看半天不知道为什么。 
求指教! 

------解决方案--------------------
runat="server"去掉, 你分明用的前台事件
------解决方案--------------------
引用:
多谢回复。
再问一下  怎么通过onserverclick传递不同的参数到那个事件?


引用:你动态生成的<a>都是runat="server",直接onserverclick指定到后台同一个事件不行吗

你可以给每个a绑定一个属性,如id,然后在后台事件里通过获取sender(即<a>的对象)的id属性来判断