1


0

LinkBut​​tonがコンテンツであるため、テーブルで動作しないのはなぜですか?

ASP.NET 3.5を使用して、LinkBut​​tonを作成し、その中にコンテンツを定義できます。 divタグまたは任意の種類のテキストなどがある場合は正常に動作しますが、テーブルを使用する場合、クリックは実際には何らかの理由でポストバックしません。 たとえば、次のようにグーグルに移動します(そこでエラーが表示されますが、それでも移動します)。

                    Test

col2

col3

divで「テーブル」を作成することで回避できますが、divでの書式設定は嫌いです。

4 Answer


3


テーブルタグは、見た目はあっても `a`タグをクリックできないため、あなたがしようとしていることはできません。 これは `a`タグの有効な使用方法ではないと思います。

これを回避するには、クライアント側のonclickをテーブルに追加してから、javascriptを使用して手動でリダイレクトを行います。

また、通常の a`タグに対して LinkBut​​ton`を使用しているのはなぜですか? 私はあなたがあなたのアプリの何かに戻ってリンクしたいと思うと思います。 その場合、 `LinkBut​​ton`の動作を模倣するために、javascriptで__DoPostBack呼び出しも生成する必要があります。 そのためには、次のコードを使用して正しいJavaScriptを生成します。

string javascriptToDoPostBack = Page.GetPostBackEventReference(yourLinkButton);


2


テーブルはブロック要素であり、リンクはインライン要素であるため、リンクにテーブルを配置することはできません。

ブラウザは、おそらくテーブルをリンクの外側に移動することにより、構造を修正しようとします。そのため、取得されるのは、リンクされていないテーブルとコンテンツのないリンクです。

リンク内に要素を配置する場合は、インライン要素である必要があります。 スパンタグ。 次に、CSSを使用して、リンクとその中の要素の両方をブロック要素に変換できますが、CSSを適用する前と後の両方で構造を理解する必要があります。


1


IEの問題だと思います。 FFまたはGCでは発生しません。

この解決策が役立つ場合があります。

  function SeachClick()  {
        <%=Page.GetPostBackEventReference(LinkButtonSearch)%>
  }
</code></pre>

<p></p>

<pre><code><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>
</code></pre>

<p></p>


0


テーブルでこれを行うことはできないと確信しています。