日期:2014-05-18  浏览次数:20430 次

新人提问:GridView中的HyperLinkField设置问题
我学Asp.net2005,看着书上的例子做,用GridView显示一个新闻公告版面,其中标题是HyperLinkField,新闻放在数据库里,有标题、内容等字段,我要怎么设置才能让别人第一点标题的链接,正确的得到新闻内容呢?也就是说怎么让标题跟内容正确的对应起来?书上只说怎么设置,原理没说,我想了解下。新人学习,不知道表述的请不清楚,见谅

------解决方案--------------------
那你可以在新建一个详细页面,
由hyperlink绑定到详细页面并给这个页面传递新闻广告记录id,详细页面获取到这个id后查询数据库得到详细内容。

------解决方案--------------------
LS的方法是对的。楼主好好思考下。
------解决方案--------------------
HTML code

  <asp:HyperLinkField HeaderText="详细信息" DataTextFormatString="详细信息" DataNavigateUrlFormatString="TopicDetail.aspx?topic_id={0}"
                                Text="详细信息" DataNavigateUrlFields="TopicId" />

------解决方案--------------------
<asp:GridView runat="server" ID="gv_List" BorderWidth="0px" Width="100%" CellPadding="0" AutoGenerateColumns="False" DataKeyNames="Merc_Id" OnRowDataBound="gv_List_RowDataBound">
<Columns>
<asp:BoundField DataField="Merc_Code" HeaderText="商码" />
<asp:HyperLinkField DataNavigateUrlFields="Merc_Id,Merc_Name" DataNavigateUrlFormatString="frm_MerchandiseView.aspx?id={0}"
DataTextField="Merc_Name" HeaderText="商品" />
<asp:BoundField DataField="Bran_Name" HeaderText="品牌" />
<asp:BoundField DataField="DL" HeaderText="大类" />
<asp:BoundField DataField="FL" HeaderText="分类" />
<asp:BoundField DataField="Merc_RetailPrice" HeaderText="售价" />
<asp:BoundField DataField="SeasonName" HeaderText="季节" />
</Columns>
</asp:GridView>

DataNavigateUrlFormatString:是一个url的格式字符串,就是你要链接的详细页面
其中{0}代表DataNavigateUrlFields="Merc_Id,Merc_Name"第一个参数Merc_Id(即绑定的数据表的id字段名称)
------解决方案--------------------
你用HyperLink绑定一个新闻id撒,然后跳页的时候,你把这个id传递到详细页面去,详细页面根据这个id,查出这条新闻的所有信息并显示
------解决方案--------------------
{0}的意思是参数占位符,一般这样的占位符的出现,旁边必然有变量,0表示变量的第1个值,如果大括号里是1,就是代表第2个值,以此类推。 

------解决方案--------------------
呵!该说的都说了哈
------解决方案--------------------
up