首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向CompositeDataBoundControl添加ItemCommand

向CompositeDataBoundControl添加ItemCommand
EN

Stack Overflow用户
提问于 2008-11-18 20:08:21
回答 2查看 1.2K关注 0票数 2

我有一个CompositeDataBoundControl,我试着给它添加一个ItemCommand,就像System.Web.UI.WebControls.Repeater一样,所以我只是想,如果我像这样反射并添加代码,它应该可以工作:

代码语言:javascript
复制
private static readonly object EventItemCommand = new object();

protected override bool OnBubbleEvent(object sender, EventArgs e)
{

   // throw new Exception();
    bool flag = false;
    if (e is RepeaterCommandEventArgs)
    {
        this.OnItemCommand((RepeaterCommandEventArgs)e);
        flag = true;
    }
    return flag;
}


protected virtual void OnItemCommand(RepeaterCommandEventArgs e)
{
    RepeaterCommandEventHandler handler = (RepeaterCommandEventHandler)base.Events[EventItemCommand];
    if (handler != null)
    {
        handler(this, e);
    }
}

public event RepeaterCommandEventHandler ItemCommand
{
    add
    {
        base.Events.AddHandler(EventItemCommand, value);
    }
    remove
    {
        base.Events.RemoveHandler(EventItemCommand, value);
    }
}

不幸的是,即使我绑定了事件,它似乎也不会触发。Iv试图沿着IPostBackEventHandler的路线走下去,但它仍然不太正确(我可以在没有args的情况下触发一个空事件,但我看不到用RepeaterCommandEventArgs调用OnItemCommand的好方法

你有什么办法让它工作吗?

在过去的4个小时里,我一直坐在办公室里,试图让它工作起来!帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-11-18 22:16:26

在转发器控件的情况下,RepeaterItem对象实际上引发了气泡事件并提供了RepeaterCommandEventArgs:

代码语言:javascript
复制
protected override bool OnBubbleEvent(object source, EventArgs e)
{
    if (e is CommandEventArgs)
    {
        RepeaterCommandEventArgs args = new RepeaterCommandEventArgs(this, source, (CommandEventArgs) e);
        base.RaiseBubbleEvent(this, args);
        return true;
    }
    return false;
}

如果你没有在你的控件中使用RepeaterItem,你可能永远也得不到那个RepeaterCommandEventArgs。请尝试检查CommandEventArgs。还要确保您的控件的OnBubbleEvent方法被调用过。

票数 2
EN

Stack Overflow用户

发布于 2008-11-19 12:18:25

我正在使用一个自定义的"RepeaterItem“(例如,( RecipeItem) -我似乎不能让OnBubbleEvent (已经覆盖它并从RepeaterItem中窃取了一些东西)在项目中触发。

不要紧,我是个笨蛋。注释掉了一个DataBind();!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/299956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档