【问题标题】:GridView v. Repeater issuesGridView 诉中继器问题
【发布时间】:2013-10-15 17:38:33
【问题描述】:

我有一个 GridView,其中包含来自数据源的绑定行,并且我在每行的末尾放置了一个链接按钮。当我单击该链接按钮时,我会在网格中找到命名控件并获取它们的值。我决定尝试在Repeater 和相同的数据源中使用具有相同命名控件的Repeater 控件,但我无法执行相同的单击事件并使用RepeaterItemEventArgs,方法签名中只有EventArgs 可用。没有RepeaterItem,我找不到控件。

此代码可以编译,但是当我单击该行时出现此错误:CS0123:'BtnAssign' 没有重载匹配委托'System.EventHandler' 所以我发现我需要将第二个参数更改为 EventArgs。这修复了运行时的错误,我可以单步执行此方法,但必须更改该方法才能编译。我不再有权访问 e.Item。想法?

protected void BtnAssign(object sender,  RepeaterItemEventArgs e)
    {
        var miscItem = new SLWorkOrderItem();
        string theAmountLabelText = "";

        // Repeater Code
        if (e.Item.ItemType == ListItemType.Item)
        {
            var theAmountLabel = e.Item.FindControl("lblAmount") as Label;

        }
    }

【问题讨论】:

  • 我很确定 GridViewRepeater 对该事件有不同的论据。拥有单独的功能可能会更好。
  • 哪个控件会触发 BtnAssign 事件?请张贴标记。

标签: c# visual-studio repeater


【解决方案1】:

我猜你正试图在 ItemCommand 事件上执行此操作?

在这种情况下:您将使用 RepeaterCommandEventArgs 而不是 RepeaterItemEventArgs。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeateritemeventargs.aspx

RepeaterItemEventArgs 用于 ItemCreated。

            OnItemCommand="BtnAssign"

            protected void BtnAssign(object source, RepeaterCommandEventArgs e)
                {

                }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-10
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多