【问题标题】:Multiple update panel triggers inside repeater中继器内的多个更新面板触发器
【发布时间】:2013-06-04 10:44:59
【问题描述】:

我在为转发器内的项目创建触发器时遇到了一些问题。我想要一个Linkbutton 控件来从更新面板中触发回发,我在标记中为Button 控件定义了一个触发器,它可以正常工作:

<Triggers>
     <asp:PostBackTrigger ControlID="button" />
</Triggers>

但是,我不能为 LinkButtons 执行此操作,因为它们是动态创建的,唯一的解决方案是为我的转发器数据绑定事件中的每个按钮添加一个触发器,如下所示:

//Inside repeater itemdatabound...
var trigger = new PostBackTrigger();
trigger.ControlID = linkButton.UniqueID;
updatepanel.Triggers.Add(trigger);

运行此代码时,我收到一个错误:

在 UpdatePanel 'updatepanel' 中找不到触发器的 ID 为 'ctl00$content$repeater$ctl01$linkBut​​ton' 的控件。

如何为每个LinkButtons 动态添加触发器?

【问题讨论】:

    标签: c# asp.net triggers updatepanel postback


    【解决方案1】:

    解决了这个问题。我假设它在我的 OP 中不起作用的原因是因为更新面板不能直接看到中继器控件。

    我怀疑将它们移到中继器之外会解决它或对FindControl("linkbutton") 调用进行调整以深入了解控件的中继器,使用此方法意味着我需要创建两个链接按钮对象每个级别都是不可取的。

    但是,我认为更简洁的解决方案是使用脚本管理器将LinkButton 控件注册为回发控件:

    //Create triggers for each 'remove' button
    ScriptManager scriptManager = ScriptManager.GetCurrent(Page);
    if (scriptManager != null)
    {
         scriptManager .RegisterPostBackControl(linkbutton);
    }
    

    在转发器OnItemDataBound 事件中,解决了它。

    【讨论】:

      【解决方案2】:

      我似乎记得您可以为此使用 clientID 而不是 uniqueID 属性。

      【讨论】:

      • 我已经试过了,不幸的是它产生了同样的结果
      • 我自己回答了这个问题,以防您感兴趣。不过还是谢谢
      【解决方案3】:

      简洁的解决方案是:

          protected void MyRepeater_OnItemCreated(object sender, RepeaterItemEventArgs e)
          {
              //Inside ItemCreatedEvent
              ScriptManager scriptMan = ScriptManager.GetCurrent(this);
              LinkButton btn = e.Item.FindControl("btnSubmit") as LinkButton;
              if (btn != null)
              {
                  btn.Click += btnSubmit_Click;
                  scriptMan.RegisterAsyncPostBackControl(btn);
              }
          }
      

      This is the source thread

      【讨论】:

        猜你喜欢
        • 2011-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多