<asp:Button id="btn_AddLinkman" runat="server" CssClass="redbuttoncss" Text="添加联络人" OnClientClick="btn_AddLinkman_Click"></asp:Button>
这样写是没错的如果把OnClientClick换成onclick就会出错
原因是控件是服务控件,这个大家都知道,
现在我碰上这么一件怪事,
在xxx.aspx.cs文件里加入事件btn_AddLinkman_Click,
然后在xxx.aspx里调用竟然是无效的
.cs代码如下:
private void btn_AddContact_Click(object sender, System.EventArgs e)
{
//遍历datagrid得到选中的最后一个checkbox的id
string selectedstring = GetSelectedItemID("cbx1");
string [] arrselectedstring = selectedstring.Split(',');
string id = arrselectedstring[arrselectedstring.GetLength(0)-1];
Response.Writ("<script>javascript:window.open('ClientContact_thisWeek.aspx?        ClientID="+id+"','_blank');</script>");
}要是使用onclick那不行的吧,怎么做啊

解决方案 »

  1.   

    OnClientClick 执行客户端脚本 javascript
      

  2.   

    我双击按钮然后在它生成的事件里写上
    代码会出错:
     <asp:Button id="btn_AddLinkman" runat="server" CssClass="redbuttoncss" Text="添加联络人" 
                                                onclick="btn_AddLinkman_Click1"></asp:Button>
    .cs代码:
    string selectedstring = GetSelectedItemID("cbx1");
    string [] arrselectedstring = selectedstring.Split(',');
    string id = arrselectedstring[arrselectedstring.GetLength(0)-1];
    Response.Writ("<script>javascript:window.open('ClientContact_thisWeek.aspx? ClientID="+id+"','_blank');</script>");
    也就是这样做
    出现这样的错误:
    第一个参数的扩展方法“btn_AddLinkman_Click1”(是否缺少 using 指令或程序集引用?)PS:命名空间不会错
      

  3.   

    OnClientClick 执行JS脚本 ,onclick前
    onclientclick="fun();return true;"
      

  4.   

    在html和js中,只有onclick,但是asp.net封装了onclick事件,这是一个服务端的事件,为了方便开发,在2.0中又加了个onclientclick事件,这是个服务器控件的属性,但响应的却是客户端的js事件,作用就是生成了个
    js的onclick脚本.
      

  5.   

    挺好.其实都是HTML和JS的东西.
      

  6.   

    我看你后台写的好像是btn_AddContact_Click这个名字
    和btn_AddLinkman_Click1有什么关系么?
      

  7.   

    很简单 。
    前台js验证用OnClientClick 
    后台用OnClick 。事件回发 。
      

  8.   

    把这个1去掉,也就是说通过双击按钮,在.cs文件里写事件会出这样的错误:
    第一个参数的扩展方法“btn_AddLinkman_Click”(是否缺少 using 指令或程序集引用?)
     有没有别的办法解决掉呢
      

  9.   

    private void btn_AddContact_Click(object sender, System.EventArgs e)
    {
    //遍历datagrid得到选中的最后一个checkbox的id
    string selectedstring = GetSelectedItemID("cbx1");
    string [] arrselectedstring = selectedstring.Split(',');
    string id = arrselectedstring[arrselectedstring.GetLength(0)-1];
    Response.Writ("<script>javascript:window.open('ClientContact_thisWeek.aspx? ClientID="+id+"','_blank');</script>");
    }<asp:Button id="btn_AddLinkman" runat="server" CssClass="redbuttoncss" Text="添加联络人"  
      onclick="btn_AddLinkman_Click1"></asp:Button>你要想实现的是服务端事件 你这两个就得一样
      

  10.   

    这个肯定是页面底层生成控件时出错了。你重新建一个页面,把代码拷贝过去估计就差不多了。
    OnClientClick是调用前台js的,OnClick这个调用后台代码的。如果你既用前台,也用后台,可以写两个事件。
      

  11.   

    现在即使一样还是会出现这样的错误,
    我知道这两个必须一样的.错误:第一个参数的扩展方法“btn_AddLinkman_Click”(是否缺少 using 指令或程序集引用?)
      

  12.   

    对于:<asp:Button>来说:
    onclientclick是客户端事件,
    onclick是服务器端事件
    当你点击了这个button,就先执行onclientclick,如果可以就执行onclick事件。
    你想通过OnClientClick="btn_AddLinkman_Click"来调用服务器端的的click事件,这个怎么可能?当然也是可以的,但是做法绝对不是你这样的,你应该把代码写成onclick=“btn_AddLinkman_Click”,如果有什么错误,请报上你的错误来。
      

  13.   

    如果onclick=“btn_AddLinkman_Click”,出现这样的错误第一个参数的扩展方法“btn_AddLinkman_Click”(是否缺少 using 指令或程序集引用?)
      

  14.   

    btn_AddLinkman_Click执行后台按钮事件,OnClientClick 执行前台脚本方法
      

  15.   

    最终都是通过JS来实现的,
    只不过前者只是执行了js函数,而后者通过JS函数,又引发了页面回发.并在服务器执行相应的事件处理程序.
      

  16.   

    OnClientClick 执行JS脚本 ,在onclick前执行