日期:2014-05-20  浏览次数:20420 次

新手问题: 怎么让datalist的第二列成为链接列?
我新学.NET,在页面上放datalist,显示   ID,标题,作者三列,
想让第二列标题栏成为超链接列,点击它后把同行第一列的ID为参数传到另一页上,
.....
TR>
<TD   width= "70 "> <%#   DataBinder.Eval(Container.DataItem,   "ID ")   %> </TD>
<TD>
      <asp:HyperLink   id= "Hyperlink1 "   runat= "server "   Text= ' <%#   DataBinder.Eval(Container.DataItem,   "title ")   %> '   NavigateUrl= ' <%#   DataBinder.Eval(Container.DataItem,   "title ", "Browers.aspx?ID={0} ")   %> '   Target= "_blank ">
</asp:HyperLink> </TD>
<TD   width= "80 "> <%#   DataBinder.Eval(Container.DataItem,   "author ")   %> </TD>
</TR>
.......
结果点击第二列的标题链接后,发现程序是以标题栏的内容为参数调用另一页面,而不是以我想要的第一列的id为参数,怎么改写呢?
请帮生手,谢谢.

------解决方案--------------------
(Container.DataItem, "ID ", "Browers.aspx?ID={0} ") %> '
------解决方案--------------------
以下代码读取StamTest表,DataList中有一超级链接,显示UserName,点击后跳转到a.aspx,并将UserID作为参数P传入。

<asp:DataList ID= "DataList1 " runat= "server " DataKeyField= "UserID " DataSourceID= "SqlUserSource ">
<ItemTemplate>
<asp:HyperLink ID= "HyperLink1 " runat= "server " NavigateUrl= ' <%# Eval( "UserID ", "a.aspx?p={0} ") %> ' Text= ' <%# Eval( "UserName ") %> '> </asp:HyperLink> <br />
</ItemTemplate>
</asp:DataList>

<asp:SqlDataSource ID= "SqlUserSource " runat= "server " ConnectionString= " <%$ ConnectionStrings:DbTempConnectionString %> "
SelectCommand= "SELECT StampTest.* FROM StampTest "> </asp:SqlDataSource>
------解决方案--------------------
用模板列:
<ItemTemplate>

<script type= "text/javascript ">
<!--
document.write( " <a href=\ "Browers.aspx?editID= <%#
DataBinder.Eval(Container.DataItem, "ID ")%> \ "> 编辑 </a> ");
-->
</script>
</ItemTemplate>
------解决方案--------------------
你可以用向导直接配置,在DataList上右键--> 编辑模板--> 项模板,然后托个超级链接到ItemTemplate,然后编辑DataBindings,然后分别绑定Text属性和NavagateUrl属性,并将NavigateUrl属性的格式设置成Browers.aspx?ID={0}