我该如何调用eventhandler?

时间:2015-07-23 16:53:07

标签: asp.net event-handling

void lbl_Click(object sender, EventArgs e)
{
LinkButton lnk = sender as LinkButton;
int currentPage = int.Parse(lnk.Text);
int take = currentPage * 10;
int skip = currentPage == 1 ? 0 : take - 10;
FetchData(take, skip);
}

您好,

我想在点击发生时调用方法lbl_Click()。

如何定义任何aspx标签来调用函数" lbl_Click()"点击发生时?或者我可以使用javascript来调用这个" lbl_Click()"功能

1 个答案:

答案 0 :(得分:0)

仅当从链接按钮触发单击事件时,才会执行事件处理程序代码 lbl_Click 。从功能上讲,当您单击分页链接按钮时,就会发生这种情况。

尝试通过单击UI中的分页链接按钮在lbl_Click函数和fire事件中放置断点。

因为,它仍然不适合你。我已经创建了一个小工作页面来向您展示它应该如何。

代码背后

using System;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Init(object sender, EventArgs e)
    {
        CreateDynamicLinkControls();
    }

    private void CreateDynamicLinkControls()
    {
        for (int i = 0; i < 10; i++)
        {
            LinkButton lk = new LinkButton();
            lk.Click += new EventHandler(lbl_Click);
            lk.ID = "lnkPage" + (i + 1).ToString();
            lk.Text = (i + 1).ToString() + "&nbsp;";
            this.form1.Controls.Add(lk);
        }
    }

    void lbl_Click(object sender, EventArgs e)
    {
        LinkButton lnk = sender as LinkButton;
        int currentPage = int.Parse(lnk.Text.Substring(0, 1));
        lblLinkText.Text = currentPage.ToString();
    }
}

ASPX页面

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        You Clicked : <asp:Label runat="server" ID="lblLinkText"></asp:Label>
    </div>
    </form>
</body>
</html>

使用此代码

尝试运行页面,然后页面上会出现链接按钮,标签会显示在显示单击页面的页面上。