日期:2014-05-18  浏览次数:20449 次

GridView中用OnClientClick方法打开小窗口
我用以下的代码,打开小窗口没有问题(参数id的值为随便一个数字,比如100)
HTML code

<asp:TemplateField HeaderText="ButtonOnClientOpen">
    <itemstyle horizontalalign="Center" />
    <ItemTemplate>        
        <asp:Button ID="btnWinOpen" runat="server" OnClientClick="window.open('Detail.aspx?id=100','','toolbar=no');" Text="OnClientClick" />
    </ItemTemplate>
</asp:TemplateField>




可是我用以下的代码,打开小窗口就出现错误,提示少了一个右括号。(Eval("ID")是有值的,能取到,没问题,已测试过)
HTML code

<asp:TemplateField HeaderText="ButtonOnClientOpen">
    <itemstyle horizontalalign="Center" />
    <ItemTemplate>        
        <asp:Button ID="btnWinOpen" runat="server" OnClientClick="window.open('Detail.aspx?id=Eval("ID")','','toolbar=no');" Text="OnClientClick" />
    </ItemTemplate>
</asp:TemplateField>



可能是引号什么的没有搞对,试了好久都没搞出来,只能在这里向高手求救了,先谢谢了。


------解决方案--------------------
'Detail.aspx?id=<%# Eval("ID")%>'
------解决方案--------------------
<asp:TemplateField HeaderText="ButtonOnClientOpen">
<itemstyle horizontalalign="Center" />
<ItemTemplate>
<asp:Button ID="btnWinOpen" runat="server" OnClientClick="window.open('Detail.aspx?id=<%#Eval("ID")%>','','toolbar=no');" Text="OnClientClick" />
</ItemTemplate>
</asp:TemplateField>

------解决方案--------------------
外面用“” 里面就用 ‘’
------解决方案--------------------
<asp:Button ID="btnWinOpen" runat="server" OnClientClick="window.open('Detail.aspx?id=' <%# Eval("ID")%>'','','toolbar=no');" Text="OnClientClick" />

------解决方案--------------------
最好在window.open前加上javascript:
------解决方案--------------------
C# code
<a href="javascript:void(0)" onclick="window.open('<%# "ImgUpload.aspx?id=" + Eval("User_Id") %>', 'Sample', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=yes,width=400,height=300,left='+(screen.width-400)/2+',top='+(screen.height-300)/2)" >修改</a>

------解决方案--------------------
HTML code
<asp:TemplateField HeaderText="ButtonOnClientOpen">
    <itemstyle horizontalalign="Center" />
    <ItemTemplate>        
        <asp:Button ID="btnWinOpen" runat="server" OnClientClick='<%# Eval("ID","window.open('Detail.aspx?id={0}','','toolbar=no');") %>' Text="OnClientClick" />
    </ItemTemplate>
</asp:TemplateField>