我的网格视图中有一个(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") %>')"
答案 0 :(得分:2)
您应该在服务器代码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>
答案 1 :(得分:0)
我从来没有把eval放在文本中间。我经常采用这种方式渲染:
"<%= "go('projectFrame','ProjectViewFrame.aspx?id=" + (string)Eval("ProjectID") %>"
答案 2 :(得分:0)
使用&lt;%#%&gt;语法并删除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>