我在一列中有一个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>
修改 它必须是超链接
答案 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>