HyperLinkField点击链接之后怎么触发事件 并且不触发对应的url(急)

applegree 2009-07-15 10:24:31
gridview有一列动态生成的HyperLinkField

Dim hField As HyperLinkField = New HyperLinkField()

hField.DataTextField = "链接"
hField.NavigateUrl = "aaa.aspx?bbb=111"
hField.ItemStyle.Width = 120
gridview.Columns.Add(hField)


我想在点击链接的时候触发一个事件,
不用NavigateUrl 这个属性来跳转,要使用一个共同方法来跳转链接

应该触发什么事件,对应的代码该怎么写

最好是用vb.net的代码
C#有的也贴一下代码
...全文
556 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
applegree 2009-07-17
  • 打赏
  • 举报
回复
头痛
阿非 2009-07-16
  • 打赏
  • 举报
回复
调用GridView 的 DataBind 方法 就会触发 模板列中子控件的 DataBinding事件
applegree 2009-07-16
  • 打赏
  • 举报
回复
怎么才能觸發 lb_DataBinding事件
阿非 2009-07-16
  • 打赏
  • 举报
回复
关于click 事件, 我是用 委托 形式写的
applegree 2009-07-16
  • 打赏
  • 举报
回复

太失败了
由于MustInherit属性

跳转页面的方法被定义在基类里,只能在继承了那个类的页面里才能调用跳转函数
不能在自己写的类里面调用
所以不能在click事件实际上已经没什么用了
applegree 2009-07-16
  • 打赏
  • 举报
回复
我的画面布局是
<TD>
gridview1
包括 hinmokucd,idx

</TD>
<TD>
gridview2
包括动态生成的LinkButton
</TD>

两个gridview绑定的是同一个数据源,现在在点击LinkButton的时候,把对应行的hinmokucd,idx作为参数传递
applegree 2009-07-16
  • 打赏
  • 举报
回复
再问阿非一下,


Sub RaiseSampleEvent(ByVal sender As Object, ByVal e As EventArgs)
‘画面跳转,
moveto("aaa.aspx?hinmokucd="+hinmokucd+"idx="+idx)
End Sub


这里的hinmokucd和idx是另外一个gridview的同一行的绑定的数据,怎么能够传到类里面
zhaotf1983 2009-07-16
  • 打赏
  • 举报
回复
学习
applegree 2009-07-16
  • 打赏
  • 举报
回复

使用阿非的类 写的绑定部分,画面检索部分已经能表示了

Dim customField As New TemplateField()
customField.ShowHeader = False
customField.HeaderTemplate = New GridViewTemplate(DataControlRowType.Header, objDataView.Table.Columns(12).ColumnName)

Dim gvt As New GridViewTemplate(DataControlRowType.DataRow, "lbtn", objDataView.Table.Columns(12).ColumnName)
customField.ItemTemplate = gvt
gvMonthD.Columns.Add(customField)

gvMonthD.DataSource = objDataView
gvMonthD.PageIndex = intPageIndex
gvMonthD.PageSize = 10
gvMonthD.DataBind()





applegree 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 sandy945 的回复:]
你现在怎么写的
[/Quote]
我就是参照天行健的方法 基本是直接拷贝下来使用的

现在在使用你的方法,测试完我把代码发上去给你们看下
applegree 2009-07-16
  • 打赏
  • 举报
回复
昨天没看到阿非的回答
测试中
yagebu1983 2009-07-16
  • 打赏
  • 举报
回复
天行健的方法就可以的。。。
前段时间,我也是这样做的。。。
阿非 2009-07-16
  • 打赏
  • 举报
回复
你现在怎么写的
applegree 2009-07-16
  • 打赏
  • 举报
回复
我试过了
可是就不进DataBinding的事件
我姓区不姓区 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 applegree 的回复:]
难道用vb.net写也需要重写类么
[/Quote]
是的:

Public Class GridViewTemplate
Implements ITemplate

Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
Dim lb As LinkButton = New LinkButton()
lb.Text = "链接"
AddHandler lb.Click, AddressOf lb_Click
End Sub

Protected Sub lb_Click(ByVal sender As Object, ByVal e As EventArgs)
'这里写你的点击事件
End Sub

End Class




dim tf as TemplateField = New TemplateField ()
tf.ItemTemplate = New GridViewTemplate();
tf.HeaderText = "列名";
gridview.Columns.Add(tf)

applegree 2009-07-15
  • 打赏
  • 举报
回复
难道用vb.net写也需要重写类么
我姓区不姓区 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 applegree 的回复:]
我用的是后台代码增加的列

不知道怎么加模板列,并且放一个LinkButton控件

这部分后台代码能提供一下么

[/Quote]

首先自定义一个类,实现ITemplate接口:

class GridViewTemplate : ITemplate
{
#region 实现ITemplate成员
public void InstantiateIn(Control container)
{
LinkButton lb = new LinkButton();
lb.Text = "链接";
lb.Click += new EventHandler(lb_Click);
container.Controls.Add(tb);
}
#endregion
}

protected void lb_Click(object sender, EventArgs e)
{
//这里写你的点击事件
}


然后为GridView添加模板列:

TemplateField tf = new TemplateField();
tf.ItemTemplate = new GridViewTemplate();
tf.HeaderText = "列名";
gridview.Columns.Add(tf)

我姓区不姓区 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sandy945 的回复:]
想触发事件 改用 LinkButton
[/Quote]
阿非改头像了?一下子没认出来,仿佛好久没见着你了
applegree 2009-07-15
  • 打赏
  • 举报
回复
我用的是后台代码增加的列

不知道怎么加模板列,并且放一个LinkButton控件

这部分后台代码能提供一下么
mbh0210 2009-07-15
  • 打赏
  • 举报
回复
用模板列吧
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkDel" runat="server" CommandArgument='<%# Eval("InstanceID") %>'
CommandName="Del" Text='删除'></asp:LinkButton>
</ItemTemplate>
<HeaderStyle CssClass="fixed:true" Width="60px" HorizontalAlign="center" />
</asp:TemplateField>
加载更多回复(9)

62,046

社区成员

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

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

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

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