1

我的网格视图中有一个 (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") %>')" 
4

3 回答 3

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>
于 2013-02-21T15:46:08.693 回答
0

我从来没有把 eval 放在文本中间的运气。我经常采用这种方式渲染:

"<%= "go('projectFrame','ProjectViewFrame.aspx?id=" + (string)Eval("ProjectID") %>"
于 2013-02-21T15:46:21.887 回答
0

使用 <%# %> 语法并删除 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>
于 2013-02-21T15:48:51.080 回答