【问题标题】:Why doesn't a LinkButton work with a table as it's content?为什么 LinkBut​​ton 不能与表格一起使用,因为它是内容?
【发布时间】:2010-07-16 17:29:07
【问题描述】:

使用 ASP.NET 3.5,您可以创建一个 LinkBut​​ton,然后在其中定义内容。如果我有 div 标签或任何类型的文本或任何东西,它工作正常,但如果我使用表格,则由于某种原因,点击实际上不会发回。这应该带你去谷歌(你会在那里得到一个错误,但它仍然应该去)例如:

<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 构建一个“表格”来解决这个问题,但我讨厌用 div 格式化。

【问题讨论】:

  • &lt;table&gt;&lt;a&gt; 内?嗯...,这绝对不是有效的标记。
  • 你的代码闻起来有点……对我来说很可疑。您确定这就是您想要解决的问题,您能告诉我们您为什么选择走这条路吗?
  • 我想要一个 ListView 内的可点击行。所以 ItemTemplate 是一个 LinkBut​​ton,LinkBut​​ton 的内容是一堆数据绑定字段。我想要一个表来保持与父表对齐。它确实适用于 DIV 标签,但我在用 DIV 标签格式化时很糟糕...... :)

标签: asp.net .net-3.5 linkbutton


【解决方案1】:

你不能做你想做的事,因为表格标签不会让a标签是可点击的,即使它们看起来像。我不认为这是对a 标签的有效使用。

您可以通过将客户端 onclick 添加到表中,然后使用 javascript 手动执行重定向来解决此问题。

另外,您为什么使用LinkButton 而不是常规的a 标签?我假设您想链接回应用程序中的某些内容。如果是这样,您还需要在 javascript 中生成 __DoPostBack 调用以模仿 LinkButton 行为。为此,请使用以下代码生成正确的 javascript:

string javascriptToDoPostBack = Page.GetPostBackEventReference(yourLinkButton); 

【讨论】:

  • 是的,
【解决方案2】:

表格是块元素,链接是内联元素,所以不能把表格放在链接里。

浏览器会尝试更正结构,可能是通过将表格移到链接之外,所以你得到的是一个没有链接的表格,一个没有内容的链接。

如果你想在链接中放置元素,它们必须是内联元素,例如跨度标签。然后,您可以使用 CSS 将链接和其中的元素都转换为块元素,但结构必须在应用 CSS 之前和之后都有意义。

【讨论】:

    【解决方案3】:

    我认为这是 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>
    

    【讨论】:

      【解决方案4】:

      我很确定你不能用桌子做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多