启用转发器中的所有按钮(单击转发器除外)

时间:2012-11-22 10:58:16

标签: c# asp.net button repeater

我有一个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;
        }

2 个答案:

答案 0 :(得分:0)

在循环中尝试一个简单的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;
             }
        }
    }

答案 1 :(得分:0)

假设您想要Button的{​​{1}} - 事件处理程序中的代码:

Click