在gridview中单击超链接事件创建

时间:2016-03-10 20:45:27

标签: asp.net vb.net gridview hyperlink

我在一列中有一个gridview,并编辑和删除超链接。我的问题是如何在我的代码隐藏中生成一个方法,这样当我点击超链接时,它会调用方法?现在它将我带到页面,但我希望能够在加载页面之前修改日期。例如,当我在设计模式下单击按钮控件时,它会生成方法。在这种情况下,如何为超链接执行类似的操作?

以下是我所拥有的:

              <asp:TemplateField>
                    <ItemTemplate>
                        <asp:HyperLink ID="EditLink" runat="server" 
                        NavigateUrl="~/EditCustomer.aspx" 
                        Text='Edit'>
                        </asp:HyperLink>
                        <asp:HyperLink ID="DeleteLink2" runat="server" 
                        NavigateUrl="~/DeleteCustomer.aspx" 
                        Text='Delete'>
                        </asp:HyperLink>
                    </ItemTemplate>
                </asp:TemplateField>

修改 它必须是超链接

2 个答案:

答案 0 :(得分:2)

我假设您要执行的代码隐藏在目标页面上。如果是某些初始化代码依赖于GridView中的值,则可以将其作为参数附加到URL。例如,如果GridView有一个&#34; LastDate&#34;字段:

<asp:TemplateField>
    <ItemTemplate>
        <asp:HyperLink ID="EditLink" runat="server" Text="Edit"
            NavigateUrl='<%# "~/EditCustomer.aspx?Date=" & Databinder.Eval(Container.DataItem,"LastDate") %>' />
        ...
    </ItemTemplate>
</asp:TemplateField>

然后您可以在目标页面中检索该参数,并在显示该页面之前将其用作初始化页面:

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Not Page.IsPostBack Then
        If Not IsNothing(Request.QueryString("Date")) Then
            InitPageWithDate(CDate(Request.QueryString("Date")))
            ...
        End If
    ...
End Sub

答案 1 :(得分:1)

您可以使用buttonfield和gridview事件RowCommand

ContinueWith

或templatefield和gridview事件RowCommand

<asp:ButtonField CommandName="Preview" Text="link1" ButtonType="Link" />  

以及RowCommand中的代码

<asp:TemplateField>
   <ItemTemplate>
      <asp:LinkButton ID="lbtnAccept" runat="server" CommandName="Preview"></asp:LinkButton>
   </ItemTemplate>
</asp:TemplateField>