我的代码:<%@ Page Language=C# Trace=False %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<Script language=C# runat="server">
public void Page_Load(object sender, EventArgs e){
if (!Page.IsPostBack){
string CnnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("Books.MDB"); 
OleDbConnection cnn = new OleDbConnection(CnnString); 
StringBuilder Sb=new StringBuilder("Select ID,Title from Books order by PubTime ");
OleDbDataAdapter Da=new OleDbDataAdapter(Sb.ToString(),cnn);

DataSet Ds=new DataSet();
cnn.Open();
Da.Fill(Ds,"ResTable");
DBGrid.DataSource=Ds.Tables["ResTable"].DefaultView;
DBGrid.DataBind();
cnn.Close();
}
}
</Script><form runat="server">
<asp:DataGrid ID="DBGrid" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink Text='<%# DataBinder.Eval(Container.DataItem,"Title") %>' runat="server" URL='Chapter.aspx?ID=<%# DataBinder.Eval(Container.DataItem,"ID") %>' />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
查看执行后的HTML代码,变成了:
<table cellspacing="0" rules="all" border="1" id="DBGrid" style="border-collapse:collapse;">
<tr>
<td>&nbsp;</td>
</tr><tr>
<td>
<a URL="Chapter.aspx?ID=<%# DataBinder.Eval(Container.DataItem,&quot;ID&quot;) %>">《BOOK1》</a>
</td>
</tr>
</table>
</form>为什么URL不能实现绑定参数显示?

解决方案 »

  1.   

    DataBinder.Eval(Container.DataItem, "ID ")
    这个东东只对属性绑定好用,你这样用当然不行了
      

  2.   

    可以参考这个来写:
    ImageUrl='<%# DataBinder.Eval(Container.DataItem, "Discontinued", "~/images/{0:G}.gif") %>'
      

  3.   

    参考
    <asp:HyperLink runat="server" NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.id", "default.aspx?ID={0}") %>'
                            Text='<%# Eval("Title") %>'></asp:HyperLink>
      

  4.   

    感谢楼上的,你的方法可行,但我不明白我错在哪里,请指点?
    -----------------------------------------
    就是你的写法只能指定给一个属性,不能指定给属性的一部分。
    Text=你的写法  ,可以
    Text=你的写法+其他字符串 不可以