2010-07-16 67 views
1

使用ASP.NET 3.5,您可以創建一個LinkBut​​ton,然後在其中定義內容。如果我有div標籤或任何類型的文本或任何類型,它工作正常,但如果我使用表格,點擊實際上不會因爲某種原因回發。這應該帶你到谷歌(你會得到一個錯誤有,但它仍然應該去),例如:爲什麼LinkBut​​ton不能使用表格作爲內容?

<asp:LinkButton ID="lbTest" PostBackUrl="http://www.google.com" runat="server"> 
      <table> 
       <tr> 
        <td>Test</td> 
        <td>col2</td> 
        <td>col3</td> 
       </tr> 
      </table> 
     </asp:LinkButton> 

我可以解決它通過建立一個「表」與div的我猜,但我討厭的格式與divs。

+1

''

裏面''?嗯......這絕對不是有效的標記。 – 2010-07-16 17:34:33

+1

你的代碼聞起來有點...對我來說很可怕。你確定*這是你想要的方式,你能告訴我們爲什麼你選擇走這條路嗎? – 2010-07-16 17:35:51

回答

3

你不能做你想做的事情,因爲表標記不會讓a標記可點擊,即使它們看起來像它們一樣。我不認爲這是對a標籤的有效使用。

你可以解決這個問題,我添加一個客戶端onclick到表,然後手動使用JavaScript重定向。

此外,爲什麼您使用LinkButton而不是常規的a標籤?我假設你想鏈接回你的應用程序中的東西。如果是這樣,您將需要在javascript中生成__DoPostBack調用以模仿LinkButton行爲。要做到這一點使用下面的代碼來生成正確的javascript:

string javascriptToDoPostBack = Page.GetPostBackEventReference(yourLinkButton); 
+0

+1偷走我的答案。 ;-) – StriplingWarrior 2010-07-16 17:38:53

+0

是的,

做了伎倆,只是沒有想到...謝謝! – CodeRedick2010-07-16 18:05:07

0

我很確定你不能用表格做這個。

2

表是塊元素,並且鏈接是一個內聯元素,所以你不能把一個表中的鏈接。

瀏覽器會嘗試更正結構,可能是通過將表移動到鏈接之外,因此您得到的是未鏈接的表格和沒有內容的鏈接。

如果要將元素放入鏈接中,它們必須是內聯元素,例如, span標籤。然後,您可以使用CSS將鏈接和其中的元素都轉換爲塊元素,但是在應用CSS之前和之後,結構都必須合理。

1

我認爲這是IE的問題。 FF或GC上的 ,它不會發生。

該解決方案可幫助:

<script type="text/javascript"> 
    function SeachClick() { 
     <%=Page.GetPostBackEventReference(LinkButtonSearch)%>   
    } 

<asp:LinkButton ID="LinkButtonSearch" runat="server" OnClick="LinkButtonSearch_Click" 
          CausesValidation="false"> 
< table border="0" cellspacing="0" cellpadding="0" style="height: 22px;" onclick="SeachClick()" > 
<tr> 
     <td class="but_left"> 
</td> 
<td class="but_center"> 
    <asp:Literal runat="server" meta:resourceKey="SearchButtonText" /> 
</td> 
<td class="but_mag"> 
</td> 
<td class="but_right"> 
</td> 


</tr> 
</table> 

相關問題