GridView中的链接(a)有问题
本文关键字:有问题 链接 GridView | 更新日期: 2023-09-27 18:00:28
我的网格视图中有一个(a),它不编译:
<asp:GridView ID="gvProjects" runat="server" OnSorting="gvProjects_Sorting"
AutoGenerateColumns="False" CssClass="table table-hover table-striped"
GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Title" SortExpression="ProjectTitle">
<ItemTemplate>
<a href="#myModal" id="remove_emp_btn" onclick="go('projectFrame','ProjectViewFrame.aspx?id=<%# Eval("ProjectID") %>')"
runat="server" data-toggle="modal">'<%# Eval("ProjectTitle") %>'</a>
</ItemTemplate>
</asp:TemplateField>
我是被迫使用asp控件还是代码有问题?
感谢
它说服务器标签格式不正确。
问题似乎是:
onclick="go('projectFrame','ProjectViewFrame.aspx?id=<%# Eval("ProjectID") %>')"
您应该将onclick
属性的所有内容包装在服务器标记<%# %>
中,并且可以删除属性runat="server"
。此外,必须转义双引号字符:
<asp:GridView ID="gvProjects" runat="server" OnSorting="gvProjects_Sorting"
AutoGenerateColumns="False" CssClass="table table-hover table-striped"
GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Title" SortExpression="ProjectTitle">
<ItemTemplate>
<a href="#myModal" id="A1" onclick='<%# "go('"projectFrame'", '"ProjectViewFrame.aspx?id=" + Eval("ProjectID").ToString() + "'" )" %>'
data-toggle="modal">'<%# Eval("ProjectTitle") %>'</a>
</ItemTemplate>
</asp:TemplateField>
备选方案:
使用Eval方法的第二个参数来格式化字符串可以使标记更易于读取。
<a href="#myModal" id="remove_emp_btn" onclick='<%# Eval("ProjectID", "go('"projectFrame'", '"ProjectViewFrame.aspx?id={0}'")") %>'
data-toggle="modal">'<%# Eval("ProjectTitle") %>'</a>
我从来没有把eval放在文本中间。我经常采用这种方式渲染:
"<%= "go('projectFrame','ProjectViewFrame.aspx?id=" + (string)Eval("ProjectID") %>"
使用<%#%>语法并删除runat=server:
<a href="#myModal" id="remove_emp_btn" OnSorting="gvProjects_Sorting"
onclick='<%# "go('projectFrame','ProjectViewFrame.aspx?id=" + Eval("ProjectID").ToString() + ")" %>'
data-toggle="modal">'<%# Eval("ProjectTitle") %>'</a>