我在页面上的某个链接上加上onclick事件,如<a href=# onclick=del()>aaa</a>
其中“<a href=# onclick=del()>aaa</a>”这一段我写在后台一个变量中。del()也写在后台。大致如下:public string ShowMain()
{....
  strHTML="<a href=# onclick=del("+i+")>aaa</a>"  return strHTML;
}private void del(int i)
{
...
}请问我这样写错在哪里?应该怎么写?谢谢

解决方案 »

  1.   

    既然事件是在服务器端发生,那么空件也应该是服务器空件runat=server如:
    <asp:linkbutton …… OnCommand=aaa() runat=server/>
    protected void aaa(Object senderer, CommandEventArgs er)
    或者
    <asp:Button …… OnClick=aaa() runat=server/>
    protected void aaa(object sender, System.EventArgs e)
      

  2.   

    你的写法显然有问题,照你的写法,del(int i)应该是服务器端代码,可你在ShowMain()中却是这样写的:strHTML="<a href=# onclick=del("+i+")>aaa</a>",这样的话,你的del()应该是客户端代码才可以!!!!
      

  3.   

    我在页面上的某个链接上加上onclick事件,如<a href=# onclick=del()>aaa</a>
    那么这个onclick只能是客户端事件,而不能是服务器事件
      

  4.   

    不好意思,请问<asp:Button …… OnClick=aaa() runat=server/>这段能不能放在后台某个变量中呀
      

  5.   

    onclick只能是客户端事件  可以
      

  6.   

    不行.
    你可以用 Button b=new Button();
    b.Click +=new EventHandler(b_Click);
      

  7.   

    在前台用JS写del()   如果del()   代码太多 怕麻烦的话 就在前台用JS写个方法 调用 del()   你的ONCLICK 调用JS写的方法就行了。
      

  8.   

    不好意思。我比较菜。。不懂JS
    后台del()中有个变量i的。每读一条记录i都在变,如何将i传到前台JS里呀。。
    另外del()中是对XML数据文档进行操作的,又怎么弄到前台JS里去呀。。我把del()贴出来,上面几位帮我看看,该怎么写到前台JS里。。多谢各位了
    private void del(int id)
    {  
    XmlDocument xmlDoc = new XmlDocument ();
    xmlDoc.Load(filename);
    XmlNodeList root = xmlDoc.SelectSingleNode ("guestbook").ChildNodes ;
    foreach ( XmlNode node in root)
    {
    XmlElement xe=(XmlElement)node;
    if ( node.FirstChild .InnerText == id.ToString ())
    {
    node.ParentNode .RemoveChild (node);
    node.RemoveAll ();
    break;
    }
    }
    xmlDoc.Save (filename);
    }