<asp:TemplateField HeaderText="操作">
                <ItemTemplate >
                    <asp:Button ID="btnEdit" runat="server" Text="修改" SkinID="Edit"  onclientclick="window.location.href='FrmNotice.aspx?id=<%# Eval("ID") %>';return false;" />
                </ItemTemplate>
            </asp:TemplateField>
整个是gridview中的模板列,onclientclick后面的javascript语句的双引号和Eval("ID")中的双引号有冲突,请问有什么解决办法吗

解决方案 »

  1.   

    这样是不行的 改单引后生成的html代码如下
    onclick="window.location.href='FrmNotice.aspx?id=&lt;%# Eval('ID') %>';"
    无法解析Eval语句了
      

  2.   

    改成单引号试试!...<%# Eval('ID') %>...
      

  3.   

    试试 onclientclick='window.location.href='FrmNotice.aspx?id= <%# Eval('ID') %>';return false;' /> 
      

  4.   


    onclientclick='window.location.href='FrmNotice.aspx?id= <%# Eval("ID") %>';return false;' /> 
      

  5.   

    这种情况 在前台单引双引都不好使的,建议在后台写,如:
    onclientclick='<%# returnObj(Eval("ID")) %>'public string returnObj(object obj)
    {
    return 
    "window.location.href='FrmNotice.aspx?id= "+obj.ToString()+"';return false;"
    }
      

  6.   

    或者在页面写一个js函数function ClickToUrl(id)
    {
          window.location.href='FrmNotice.aspx?id='+id;
          return false;
    } onclientclick='ClickToUrl(<%# Eval("ID")%>);' /> 
      

  7.   

    后台写肯定是没有问题,如果后台写的话我就直接给按钮加Attribute了,我就是想直接在页面上看怎么样能解决这个引号冲突的问题,还望赐教
      

  8.   

    <asp:Button ID="btnEdit" runat="server" Text="修改" SkinID="Edit"  onclientclick="window.location.href='FrmNotice.aspx?id= <%# Eval(" & "ID" & ") %>';return false;" /> ? 
      

  9.   

    <asp:Button ID="btnEdit" runat="server" Text="修改" SkinID="Edit"  onclientclick="window.location.href='FrmNotice.aspx?id= <%# Eval("ID") %>';return false;" />
    试试这个
      

  10.   

    11楼我不知道为什么Eval没有解析 最后的html是onclick='ClickToUrl( <%# Eval("ID")%>);'
    想不通
      

  11.   

     html += "            <TD class=category style='width:1%'><input type=button onclick='OnKeyDelRow(\"Dg_SO\", this, this.parentElement.parentElement.rowIndex,\"Total_Amount\",\"Amount\")' id='Del_But' style='background-color:White;border:0px:width:10px;' value='" + (i + 1).ToString() + "'/>\n";
      

  12.   

    http://blog.csdn.net/dadakai/archive/2009/07/27/4383923.aspx这是我碰到的问题,我发出来有人还说我的问题菜!~~
      

  13.   

    javascript 中的引号可以用单引号代替~~
      

  14.   

    <asp:Button ID="btnEdit" runat="server" Text="修改" SkinID="Edit"  onclientclick='<%# "window.location.href='FrmNotice.aspx?id="+ Eval("ID").ToString()+"';return false;" %>' /> 
      

  15.   

     onclientclick=window.location.href='FrmNotice.aspx?id= <%# Eval("ID") %>';return false; /> 
    可以把最外面的双引号去掉
      

  16.   

    这个我知道,现在问题是我要在javascript语句中嵌入Eval语句,Eval语句是在服务端执行的,其中的双引号是不能替换成单引号的。但是如果不替换成单引号好,又会和javascript语句中的双引号冲突
      

  17.   

    window.location.href='FrmNotice.aspx?id= <%# Eval("ID") %>';return false;
    改成:
    <%# Eval("ID","window.location.href='FrmNotice.aspx?id={0}';return false;") %>
      

  18.   

    你也可以 把单引号去掉
    window.location.href=FrmNotice.aspx?id= <%# Eval("ID") %>;return false; 就这样。
      

  19.   

    这样也不行,不过我稍微改了一下,
    onclientclick=<%#"window.location.href='FrmNotice.aspx?id="+Eval("ID").ToString()+"';return false;" %> 把最外面的单引号去掉就可以了,谢谢。和9楼的原理一样。也谢谢九楼的朋友。谢谢各位。
      

  20.   

    反斜杠'\',应该可以的:
    <asp:Button ID="btnEdit" runat="server" Text="修改" SkinID="Edit" onclientclick="window.location.href='FrmNotice.aspx?id= <%# Eval(\"ID\") %>';return false;" />