gridview怎么实现每行都有不同的链接
--------------------编程问答--------------------
每行都有一个ID 你可以通过传入页面,根据不同ID读取不同新闻
--------------------编程问答--------------------
赋不同的值
就是不一样的连接了
--------------------编程问答--------------------
<asp:GridView
ID="GridView1" runat="server"
AutoGenerateColumns="False" CellPadding="4"
GridLines="None" Height="184px" Width="742px" DataSourceID="SqlDataSource2"
onselectedindexchanged="GridView1_SelectedIndexChanged"
ForeColor="#333333">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="编号" HeaderStyle-Width="50px"> <ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("编号") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle Width="50px"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="日期" HeaderStyle-Width="64px">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("日期") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle Width="80px"></HeaderStyle>
</asp:TemplateField>
<asp:HyperLinkField HeaderText="新闻" HeaderStyle-Width="190px"
DataNavigateUrlFields="编号,新闻" DataNavigateUrlFormatString="7.aspx?编号={0}&新闻={1}"
DataTextField="新闻" >
<HeaderStyle Width="150px"></HeaderStyle>
</asp:HyperLinkField>
<asp:CommandField ButtonType="Image" DeleteImageUrl="~/image/13.gif"
HeaderText="删除" ShowDeleteButton="True" HeaderStyle-Width="50px">
<HeaderStyle Width="50px"></HeaderStyle>
</asp:CommandField>
</Columns>
<EditRowStyle BackColor="#7C6F57" />
<FooterStyle BackColor="#1C5E55" ForeColor="White" Font-Bold="True" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#E3EAEB" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F8FAFA" />
<SortedAscendingHeaderStyle BackColor="#246B61" />
<SortedDescendingCellStyle BackColor="#D4DFE1" />
<SortedDescendingHeaderStyle BackColor="#15524A" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:yhglConnectionString %>"
SelectCommand="SELECT * FROM [xinwen]"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:yhglConnectionString2 %>"
SelectCommand="SELECT * FROM [xinwen]"></asp:SqlDataSource>
</p>
这是前台gridview代码
--------------------编程问答--------------------
没发现啊 在哪,
--------------------编程问答--------------------
具体怎么个设置法
--------------------编程问答--------------------
<a href="javascript:void(0);" onclick="WinOpen('ViewProject.aspx?Type=show&pid=<%#HelpBLL.Encode(DataBinder.Eval(Container.DataItem,"ProjectID").ToString())%>','560px','540px');">
--------------------编程问答--------------------
就通过ID传过去就可以
--------------------编程问答--------------------
不会传 写哪 每次调试还是点击不同的都打开同样的网页
--------------------编程问答--------------------
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField HeaderText="序号">
<ItemTemplate>
<%#Container.DataItemIndex+1 %>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="项目名称">
<ItemTemplate>
<a href="a.aspx?id= <%#Eval("ID")%>">
</a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Left" />
</asp:TemplateField>
</Columns>
</asp:GridView>
--------------------编程问答--------------------
?我这是HyperLinkField不是TemplateField
--------------------编程问答--------------------
那写了还能改吗
--------------------编程问答--------------------
HyperLinkField一样可以啊
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField HeaderText="序号">
<ItemTemplate>
<%#Container.DataItemIndex+1 %>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="项目名称">
<ItemTemplate>
<a href="a.aspx?id= <%#Eval("ID")%>">
</a>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:HyperLinkField NavigateUrl="~/About.aspx?id= <%#Eval("ID")%>" />
</Columns>
</asp:GridView>
--------------------编程问答--------------------
<asp:HyperLinkField NavigateUrl="~/About.aspx?id= <%#Eval("ID")%>" /> 换成 <asp:HyperLinkField NavigateUrl='\~/About.aspx?id= <%#Eval("ID")%>' />
--------------------编程问答--------------------
为什么不用Repeater
--------------------编程问答--------------------
<asp:HyperLinkField NavigateUrl='\~/7.aspx?id= <%#Eval("编号")%>' HeaderText="新闻" HeaderStyle-Width="190px"
DataNavigateUrlFields="编号" DataNavigateUrlFormatString="news1.aspx?编号={0}"
DataTextField="新闻" SortExpression="新闻" Target="_blank" >
<HeaderStyle Width="150px"></HeaderStyle>
</asp:HyperLinkField>是这样写吗
--------------------编程问答--------------------
这样应该可以吧
--------------------编程问答--------------------
还是每次弹出的都是一个页面“news1.aspx”
--------------------编程问答--------------------
是啊,只是根据不同的ID绑定不同的内容啊
--------------------编程问答--------------------
还是没成功
--------------------编程问答--------------------
--------------------编程问答--------------------
我是新手 现在又急需做毕业设计 没办法 希望能把3楼我代码分析下 看哪里错了
--------------------编程问答--------------------
你意思是都是要跳到new1.aspx页面,但是根据不同行传的id不同,然后到new1.aspx页面显示的数据不同是把,那你看看跳过去后url是什么?
--------------------编程问答--------------------
看你代码貌似没问题,你看看你数据源的编号,新闻那两列数据对不对,怎么gridview里面每行都一样的。
--------------------编程问答--------------------
你看你的编号,text绑定的是
编号那一列,结果每行显示的都是abc
<asp:Label ID="Label1" runat="server" Text='<%# Eval("编号") %>'></asp:Label>
这个参数绑定的是编号和新闻, 文本绑的是新闻,结果每行显示也都是abc,那你最后地址肯定会是7.aspx?编号=abc&新闻=abc",都是一样链接地址,当然看到的页面是一样的,看看你数据源是不是所有都是abc.
<asp:HyperLinkField HeaderText="新闻" HeaderStyle-Width="190px"
DataNavigateUrlFields="编号,新闻" DataNavigateUrlFormatString="7.aspx?编号={0}&新闻={1}"
DataTextField="新闻" >
--------------------编程问答--------------------
是的 都是abc
--------------------编程问答--------------------
怎么都是abc
--------------------编程问答--------------------
--------------------编程问答--------------------
news1是当前页面 新闻页面是7-15.aspx
--------------------编程问答--------------------