ASP.NET GridView超链接问题

qinzugan 2011-11-26 04:44:26
我在做项目时,在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,我没有接触过这样的问题,我分不多,会尽力给.


...全文
322 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ximenwuji 2011-11-27
  • 打赏
  • 举报
回复
不错,学写了
阿非 2011-11-27
  • 打赏
  • 举报
回复
在 RowDataBound 中写代码进行处理。

FindControl 效率不高,可以自己写查找函数实现此功能

或者用下标访问
bonnibell 2011-11-26
  • 打赏
  • 举报
回复
Gridview 添加 RowDataBound 事件

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
<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";
}
}
}
}
}




62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧