在GridView中常常要设置链接,下面局里说明。
前台GridView代码如下:
<asp:GridView ID="dataview" runat="server" Width="80%"
AutoGenerateColumns="False" BackColor="White"
GridLines="Horizontal" HeaderStyle-Height="35px" RowStyle-Height="33px"
onrowdatabound="grid_CameraInfo_RowDataBound" >
<Columns>
<asp:HyperLinkField DataTextField="SEL_TIME" Target="_self" HeaderText="日期"
ControlStyle-ForeColor="#FF6600" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="19.5%" ItemStyle-Width="20%">
<ControlStyle ForeColor="#FF6600" />
</asp:HyperLinkField>
<asp:HyperLinkField DataNavigateUrlFields="ROUTE_ID,CROSSING_ID" DataNavigateUrlFormatString="..\Login\Login.aspx?CAMER_NM={0}&SEL_TIME={1}" DataTextField="CAMER_NM" Target="show" HeaderText="老师名称"/>
<asp:BoundField DataField="ROUTE_ID" HeaderText="ID" />
<asp:BoundField DataField="CROSSING_ID" HeaderText="CrossID" />
</Columns>
<HeaderStyle HorizontalAlign="Center"/>
</asp:GridView>
后台代码如下:
protected void grid_CameraInfo_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink timeHref = e.Row.Cells[0].Controls[0] as HyperLink;
string routeName = DataBinder.Eval(e.Row.DataItem, "ROUTE_ID").ToString();
timeHref.NavigateUrl = "Monitor.aspx?route=" + routeName;
}
}
我们看到一种是直接在前台代码中写好的。一种是通过后台设置的。