2012-03-13 46 views
1

我在GridView中有一個錨標籤,它使用javascript onclick來彈出一個新窗口。這一切都按預期的方式工作,除了當窗口彈出如果使父頁做autopostback。我研究了這一點,但無法找到爲什麼會發生這種情況或者如何解決這個問題。下面是我的代碼,第一個是我的網格,第二個是javacsript函數。在gridview中使用<a href>

<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

您的「onclick」屬性應該說是onclick='return clickMe(...)'。您的處理程序返回false,但該屬性中的代碼基本上是實際處理程序,它根本沒有return

另外,就像一些建議一樣,這是一種好主意,儘可能少發佈代碼。它使人們更容易掃描問題並尋找簡單的問題。當然,縮小代碼太多很不好,因爲很容易對導致問題的原因做出錯誤的假設。

+0

非常感謝它的工作! – Will 2012-03-13 19:37:25

相關問題