<table border="1" cellspacing="1" cellpadding="1">
<tr>
<td>
<asp:DataGrid id="dgrdMain" cellpadding="1" showheader="true" autogeneratecolumns="false" borderwidth="0" runat="server">
<columns>
<asp:TemplateColumn>
<itemTemplate>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td><asp:HyperLink id="hyperlink1" runat="server" NavigateUrl="show.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id")%>">查看</asp:HyperLink>//我在这里把id=<%# DataBinder.Eval(Container.DataItem,"id")%>就报错,如果去掉就正常
</td>
<td><%# DataBinder.Eval(Container.DataItem,"oicq")%></td>
<td><%# DataBinder.Eval(Container.DataItem,"title")%></td>
</tr>
</table>
</itemTemplate>
</asp:TemplateColumn>
</columns>
</asp:datagrid>
</td>
</tr>
</table>

解决方案 »

  1.   

    已经select id吧
    外层的双引号用单引号看看
      

  2.   

    NavigateUrl="show.aspx?id=<%# DataBinder.Eval(Container.DataItem,\"id\")%>"
      

  3.   

    or
    NavigateUrl='show.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id")%>'
      

  4.   

    楼上的,这样是不会出错,但本来是传递值的<%# DataBinder.Eval(Container.DataItem,"id")%>现在却就这样给读出来了。
      

  5.   

    <%%> 用单引号括起来就行了.
      

  6.   

    不行,一用单引号把从NavigateUrl开始括起来了就把连<%# DataBinder.Eval(Container.DataItem,"id")%>一起读出来了。
      

  7.   

    这样就是不对
    <asp:HyperLink id="hyperlink1" runat="server" NavigateUrl='show.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id")%>'>查看</asp:HyperLink>
      

  8.   

    终于行了
    <asp:HyperLink id="hyperlink1" runat="server" NavigateUrl='<%#"show.aspx?id="+DataBinder.Eval(Container.DataItem,"id")%>'>查看</asp:HyperLink>
      

  9.   

    asp:HyperLink id="hyperlink1" runat="server" NavigateUrl='<%# "show.aspx?id=" + DataBinder.Eval(Container.DataItem,"id")%>'>查看</asp:HyperLink>
    这样就可以了。
      

  10.   

    要注意NavigateUrl中单引号与双引号的用法。