Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态添加链接按钮Don';t Fire OnClick事件_C#_Asp.net_.net_Dynamic_Paging - Fatal编程技术网

C# 动态添加链接按钮Don';t Fire OnClick事件

C# 动态添加链接按钮Don';t Fire OnClick事件,c#,asp.net,.net,dynamic,paging,C#,Asp.net,.net,Dynamic,Paging,我需要在我的网页上分页。我使用PagedDataSource。但是我需要在.aspx上枚举页面,所以我将LinkButtons动态添加到PlaceHolder中,并为所有页面编写一个Eventhandler。它显示和工作良好。在第一次单击时,将触发Eventhandler。第二次它就不开火了。第三个是。等等有什么想法吗 protected void Page_Load(object sender, EventArgs e) { bindrepeater();

我需要在我的网页上分页。我使用PagedDataSource。但是我需要在.aspx上枚举页面,所以我将
LinkButtons
动态添加到
PlaceHolder
中,并为所有页面编写一个
Eventhandler
。它显示和工作良好。在第一次单击时,将触发
Eventhandler
。第二次它就不开火了。第三个是。等等有什么想法吗

    protected void Page_Load(object sender, EventArgs e)
    {
        bindrepeater();
    }


    private void bindrepeater()
    {
        var service = new Service();
        var coll = service.GetPeople();

        PagedDataSource Pds1 = new PagedDataSource();
        Pds1.DataSource = coll;
        Pds1.AllowPaging = true;
        Pds1.PageSize = 10;
        Pds1.CurrentPageIndex = CurrentPage;

        Repeater1.DataSource = Pds1;
        Repeater1.DataBind();

        var count = (coll.Count / 10) + 1;
        pages.Controls.Clear();
        for (int i = 1; i < count; i++)
        {
            var lb = new LinkButton() { Text = i.ToString(), CssClass = "hrefia" };
            lb.Click += new EventHandler(lb_Click);
            pages.Controls.Add(lb);
        }
    }

    protected void lb_Click(object sender, EventArgs e)
    {
        var lb = (LinkButton)sender;
        CurrentPage = int.Parse(lb.Text);
        bindrepeater();
    }

    public int CurrentPage
    {
        get
        {
            object s1 = this.ViewState["CurrentPage"];
            if (s1 == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt32(s1);
            }
        }
        set { this.ViewState["CurrentPage"] = value; }
    }
受保护的无效页面加载(对象发送方,事件参数e)
{
bindrepeater();
}
专用void bindrepeater()
{
var服务=新服务();
var coll=service.GetPeople();
PagedDataSource Pds1=新的PagedDataSource();
Pds1.DataSource=coll;
Pds1.allowpage=true;
Pds1.PageSize=10;
Pds1.CurrentPageIndex=当前页面;
Repeater1.DataSource=Pds1;
Repeater1.DataBind();
变量计数=(coll.count/10)+1;
pages.Controls.Clear();
对于(int i=1;i
一件简单的事情,根据您的代码首次加载时,您当前的页面索引将返回为0。 然后在子页面上单击,如单击第2页,则返回的当前页面索引将为2,但如果页面索引以0开头,则2表示第3页,而不是第2页。 因此,我想在设置当前页面时,您应该执行以下操作:

protected void lb_Click(object sender, EventArgs e)
{   
    var lb = (LinkButton)sender;      
    CurrentPage = int.Parse(lb.Text) **- 1**;
    bindrepeater();   
}

一件简单的事情是,根据您的代码第一次加载时,您当前的页面索引将返回为0。 然后在子页面上单击,如单击第2页,则返回的当前页面索引将为2,但如果页面索引以0开头,则2表示第3页,而不是第2页。 因此,我想在设置当前页面时,您应该执行以下操作:

protected void lb_Click(object sender, EventArgs e)
{   
    var lb = (LinkButton)sender;      
    CurrentPage = int.Parse(lb.Text) **- 1**;
    bindrepeater();   
}

需要为所有链接按钮提供ID。 @Hassan Boutougha在评论中反驳了我

var lb = new LinkButton() { Text = i.ToString(), CssClass = "hrefia" };
lb = "btnId" + i.ToString();

需要为所有链接按钮提供ID。 @Hassan Boutougha在评论中反驳了我

var lb = new LinkButton() { Text = i.ToString(), CssClass = "hrefia" };
lb = "btnId" + i.ToString();

你好,问题是你必须为你的LinkButton设置一个ID才能正常工作。我添加了它,现在它再也不会启动了。停下来向所有人开火你好,我已经试过了,在设置click handler之前,它是有效的(你确定要设置lb.ID=…)吗?有效!但是很奇怪。我添加了var lb=newlinkbutton(){ID=Guid.NewGuid().ToString(),Text=I.ToString(),CssClass=“hrefia”};像这样,它不起作用。您好,问题是您必须为您的LinkButton设置一个ID才能正常工作。我添加了它,现在它再也不会启动了。停下来向所有人开火你好,我已经试过了,在设置click handler之前,它是有效的(你确定要设置lb.ID=…)吗?有效!但是很奇怪。我添加了var lb=newlinkbutton(){ID=Guid.NewGuid().ToString(),Text=I.ToString(),CssClass=“hrefia”};像这样,它不起作用。写下答案,我会接受的。