【问题标题】:Server tag is not well formed error on GridView row LinkButtonGridView 行 LinkBut​​ton 上的服务器标记格式错误
【发布时间】:2014-12-02 10:49:05
【问题描述】:

我遇到了这个错误,我一生都无法弄清楚原因。基本上,我在 GridView 控件的每一行上都有一个 LinkBut​​ton,当单击它时应该删除与该行关联的记录。我之前已经成功使用过 Container.DataItem 和 href,但之前没有尝试过使用 LinkBut​​ton。该链接应将 GridView 的 DataKey 传递给从数据库中删除记录的服务器端函数。任何帮助是极大的赞赏!以下是相关代码:

<asp:TemplateField>
     <ItemTemplate>
          <asp:LinkButton ID="btnDeleteInfoRequest" runat="server" onClick="DeleteInfoRequest(this, <%#DataBinder.Eval(Container.DataItem, "pKey") %>)" Text="Delete?" />
     </ItemTemplate>
</asp:TemplateField>

【问题讨论】:

  • 尝试将onClick用单引号括起来onClick='DeleteInfoRequest(this, &lt;%#DataBinder.Eval(Container.DataItem, "pKey") %&gt;)'
  • 感谢闪电般的快速响应!我之前尝试过并得到以下错误:XML 文字不能出现在此处,除非它被括在括号中
  • 也许试试这个onClick='&lt;%# "DeleteInfoRequest(this," + DataBinder.Eval(Container.DataItem, "pKey") + ");" %&gt;)'
  • 再次感谢,非常感谢您的反馈!这给出了以下错误:无法从类型“ASP.casedetail_aspx”中选择 XML 元素。
  • 您是否尝试在LinkButton 上单击javascript 函数DeleteInfoRequest

标签: asp.net vb.net gridview


【解决方案1】:

像这样更改您的 aspx 代码:

        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="btnDeleteInfoRequest" runat="server" CommandArgument='<%#Eval("pKey")%>' OnClick="DeleteInfoRequest" Text="Delete?" />
            </ItemTemplate>
        </asp:TemplateField>

然后像这样创建代码:

Protected Sub DeleteInfoRequest(sender As Object, e As EventArgs)
    Dim btnDeleteInfoRequest As LinkButton = TryCast(sender, LinkButton)
    Dim pKey As String = btnDeleteInfoRequest.CommandArgument

    'TODO: do your stuff here
End Sub

编码愉快!

【讨论】:

  • Gregor,效果很好!非常感谢!在这种情况下,我之前没有使用过 CommandArgument。
猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
相关资源
最近更新 更多