【问题标题】:Enabling all buttons in a repeater except for the clicked one启用中继器中的所有按钮,但单击的按钮除外
【发布时间】:2012-11-22 19:23:06
【问题描述】:

我有一个Repeater Control,里面有各种按钮。

当按钮被点击时,它需要禁用自身以使其无法再次被点击。 工作。

但是,当我单击该按钮时,它需要启用除它之外的任何其他按钮。

所以,当我点击它时,它需要禁用。当我点击另一个按钮时,前一个按钮必须启用,而那个按钮必须禁用。

所以我试过了:

Button btnLoad = (Button)e.Item.FindControl("btnLoad");

foreach (Button b in e.Item.Controls.OfType<Button>().Select(c => c).Where(b => b != btnLoad))
{
   b.Enabled = true;
}

btnLoad.Text = "Currently Viewing";
btnLoad.Enabled = false;

但它不起作用。根据我放置的位置,它要么启用所有按钮(但仍在更改其文本),要么根本不做任何事情。

我需要做什么才能完成这项工作?

编辑:代码在这里:

protected void rptPdfList_ItemCommand(object source, RepeaterCommandEventArgs e)

这就是我使用Button btnLoad = (Button)e.Item.FindControl("btnLoad");的原因。

方法见:

switch (e.CommandName)
        {
            case "LoadDoc":
                 //Above code
               break;
        }

【问题讨论】:

  • 该代码在哪里?
  • :/ 忘记添加它的位置...添加

标签: c# asp.net button repeater


【解决方案1】:

假设您希望在Button 的Click-event 处理程序中使用该代码:

protected void Button_Clicked(Object sender, EventArgs e)
{
    Button thisButton = (Button) sender;
    thisButton.Text = "Currently Viewing";
    RepeaterItem item = (RepeaterItem) thisButton.NamingContainer;
    IEnumerable<Button> buttons = item.Controls.OfType<Button>();
    foreach(var btn in buttons)
    {
        btn.Enabled = btn != thisButton;
    }
}

【讨论】:

  • 对不起,我缺乏洞察力。我已经更新了我的问题。
  • 之前的按钮仍未启用 - 它们仍处于禁用状态。
  • @NewAmbition:使用上面的代码还是使用您的ItemCommand?您是否在某处对转发器进行数据绑定?
  • ItemCommand.... 转发器必须在页面加载时填充,尽管它位于 AjaxUpdatePanel
【解决方案2】:

在下面的循环中尝试一个简单的 if 语句

Button btnLoad = (Button)e.Item.FindControl("btnLoad");
foreach (Control c in e.Item.Controls)
    {
        if (b is Button)
        {
            if(b == btnLoad)
             {
             b.Enabled = false;
             }
            else
             {
             b.Enabled = true;
             }
        }
    }

【讨论】:

  • 在我的代码中,我已将您的循环更改为 Linq 语句.. 真的一样:/
猜你喜欢
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 2022-12-20
  • 2019-06-17
  • 1970-01-01
  • 2022-12-18
相关资源
最近更新 更多