我在gridview中有锚标签,我使用javascript onclick来弹出一个新窗口。这一切都按预期的方式工作,除了当窗口弹出时如果使父页面执行自动后备。我已经研究了这个,但无法找到为什么会发生这种情况或如何解决它。这是我的代码,首先是我的网格,第二个是javacsript函数。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
AllowSorting="True" AllowPaging="True" PageSize="20" BackColor="White"
BorderColor="#003366" BorderStyle="None" BorderWidth="1px" CellPadding="3"
GridLines="Vertical" Font-Names="Verdana" Font-Size="Small">
<AlternatingRowStyle BackColor="#D9ECFF" BorderColor="#003366" />
<Columns>
<asp:TemplateField HeaderText="SELECT">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<a href="#" onclick="clickMe('<%# Eval("ICAO") %>')" target="_top">Test</a>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ICAO" HeaderText="ICAO" SortExpression="ICAO" />
<asp:BoundField DataField="IATA" HeaderText="IATA" SortExpression="IATA" />
<asp:BoundField DataField="AIRPORT_NAME" HeaderText="AIRPORT NAME" SortExpression="AIRPORT_NAME" />
<asp:BoundField DataField="CITY" HeaderText="CITY" SortExpression="CITY" />
<asp:BoundField DataField="COUNTRY" HeaderText="COUNTRY" SortExpression="COUNTRY" />
<asp:BoundField DataField="REVISED_DATE" HeaderText="REVISED DATE" SortExpression="REVISED_DATE" />
<asp:BoundField DataField="EMAIL_DATE" HeaderText="EMAIL DATE" SortExpression="EMAIL_DATE" />
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<HeaderStyle BackColor="#465c71" Font-Bold="True" ForeColor="#F7F7F7" />
<PagerSettings FirstPageText="First" LastPageText="Last"
Mode="NextPreviousFirstLast" NextPageText="Next" Position="Top"
PreviousPageText="Previous" />
<PagerStyle BackColor="#F7F7F7" ForeColor="#465c71" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F7F7" ForeColor="#4A3C8C" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<SortedAscendingCellStyle BackColor="#F4F4FD" />
<SortedAscendingHeaderStyle BackColor="#5A4C9D" />
<SortedDescendingCellStyle BackColor="#D8D8F0" />
<SortedDescendingHeaderStyle BackColor="#3E3277" />
</asp:GridView>
<script language="javascript" type="text/javascript">
function clickMe(icao) {
targetUrl = "login.aspx?icao=" + icao
window.open(targetUrl, 'Rep_Search', 'toolbar=no, directories=no,
location=no,status=yes, menubar=no, resizable=no, scrollbars=yes, height=300,
width=400'); return false;
}
</script>
答案 0 :(得分:0)
您的“onclick”属性应该说onclick='return clickMe( ... )'
。您的处理程序返回false
,但该属性中的代码基本上是真正的处理程序,并且它根本没有return
。
此外,正如一些建议一样,发布尽可能少的代码是个好主意。它使人们更容易扫描问题并寻找简单的问题。当然,缩小代码太多并不好,因为很容易对导致问题的原因做出错误的假设。