我在做项目时,在GridView建一个超链接列,开始超链接是死的,上面绑定了好多参数, HyperLinkColumn ruleNameColumn = new HyperLinkColumn();
ruleNameColumn.HeaderText = "RuleID";
ruleNameColumn.DataTextField = "RuleID";
ruleNameColumn.DataNavigateUrlField = "RuleID";
ruleNameColumn.HeaderStyle.Width = 100;
ruleNameColumn.DataNavigateUrlFormatString = "ByRun.aspx?UpPage=ByRule&RuleID={0}&ModuleID=" + module + "&EQID=" + EQID + "&SDT=" + startTime + "&EDT=" + endTime;
DataGrid2.Columns.Add(ruleNameColumn);
问题在于内容中添加行数据后,需要根据某个值来决定跳到哪个页面,也就是需要添加数据后根据该行中某个值来更改列中的DataNavigateUrlFormatString,我没有接触过这样的问题,我分不多,会尽力给.
ruleNameColumn.HeaderText = "RuleID";
ruleNameColumn.DataTextField = "RuleID";
ruleNameColumn.DataNavigateUrlField = "RuleID";
ruleNameColumn.HeaderStyle.Width = 100;
ruleNameColumn.DataNavigateUrlFormatString = "ByRun.aspx?UpPage=ByRule&RuleID={0}&ModuleID=" + module + "&EQID=" + EQID + "&SDT=" + startTime + "&EDT=" + endTime;
DataGrid2.Columns.Add(ruleNameColumn);
问题在于内容中添加行数据后,需要根据某个值来决定跳到哪个页面,也就是需要添加数据后根据该行中某个值来更改列中的DataNavigateUrlFormatString,我没有接触过这样的问题,我分不多,会尽力给.
<Columns>
<asp:BoundField DataField="ID" HeaderText="编号" />
<asp:TemplateField HeaderText="查看">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("Name", typeof(string));
DataRow dr = null;
for (int i = 0; i < 5; i++)
{
dr = dt.NewRow();
dr["ID"] = i.ToString();
dr["Name"] = "Name" + i.ToString();
dt.Rows.Add(dr);
}
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataControlRowType.DataRow)
{
return;
} if (e.Row.FindControl("HyperLink1") != null)
{
HyperLink link = e.Row.FindControl("HyperLink1") as HyperLink; if (link != null)
{
DataRowView drv = e.Row.DataItem as DataRowView;
link.Text = drv.Row["Name"].ToString(); if (Int32.Parse(drv.Row["ID"].ToString()) % 2 == 0)
{
link.NavigateUrl = "A.aspx";
}
else
{
link.NavigateUrl = "B.aspx";
}
}
}
}
}