请问05怎么给服务器控件添加客户端脚本,
ddl.Attributes.Add("OnChange", "funStr('" + ddl.ClientID + "')");
ddl.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
在03下好用,在05下就会影响服务器事件的执行2)有时按钮客户端id是button1,但有时候我浏览是gridview-$001$-button1,我知道该通过clientid取,但为什么
会发生变化
3)比如说OnClientClick="funStr('<%#aa %>')"这样的情况,在03下可以用,但是为什么在05下源码“<”总是显示为&lt,
这样就无法执行脚本,05下该如何写呢?谢谢

解决方案 »

  1.   

    1.ddl.attributes.add()和RegisterClientScriptBlock都可以用
    2.你可能使用了模板页。
    3.
      

  2.   

    在05上一般都是在页面里而非代码里绑定事件的.
    如果一定要这么做,那05的也很简单,就是
    ddl.SelectedIndexChanged   +=   DropDownList1_SelectedIndexChanged; 
    不过如果你在页面里身明了事件的话,这就没必要了.
    OnClientClick= "funStr( ' <%#aa   %> ') " 这种服务器包含指令似乎只能用在有数据源的控件里用作数据绑定用.如果不是,则认为是普通字符,自然要跟你来个Encode啦.
      

  3.   


    <asp:Button ID="Button1"  runat="server"  Text='<%#aa%>' OnClientClick="alert('<%#aa%>')"/>
    像这种情况为什么alert是<%#aa%>,将其作为了一个字符串呢,Text可以取到我后台定义的aa的值,
    该如何处理呢,再就是OnClientClick="alert('<%#Eval("sex")%>')"是出错的,不能这样用吗?
      

  4.   

    我做了测试,你只要把客户端事件绑定到rowbind中,
    将服务器事件绑定到rowcreate事件中就没有问题了,
    第二种情况,如果绑定了事件就应该是gridview-$001$-button1这种的形式,
    这样才能识别是哪个按钮执行的事件