Как знать каков - checkbox, который бросил событие OnCheckedChanged в asp.net?

Я надеюсь, что кто-то может помогать мне со следующим. Я показываю информацию пользователей в таблице, и кроме того в линии каждого пользователя есть checkbox, который говорит, блокирован или нет ли пользователь, я хочу, что, когда checkbox пользователя изменит состояния обновлять Ваше свойство Disabled в базе данных. Вид был бы таким:

<asp:GridView runat="server" ID="ListaDeUsuarios"
                ShowFooter="True" GridLines="Vertical" CellPadding="4"
                CssClass="table table-striped table-bordered"
                ItemType="Proyecto.Models.Usuario" DataKeyNames="Id" 
                SelectMethod="GetUsuarios"
                AutoGenerateColumns="false">
                <Columns>
                    <asp:TemplateField HeaderText="Bloqueado">
                      <ItemTemplate>
                          <asp:CheckBox Checked=<%# Item.Disabled %> runat="server" 
                                        AutoPostBack="True"
                                        OnCheckedChanged="Check_Clicked"></asp:CheckBox>
                      </ItemTemplate>
                    </asp:TemplateField> 
                </Columns>
            </asp:GridView>

Мое сомнение, которое помещать в метод

 public void Check_Clicked(object sender, EventArgs e) 
    {

    }

что позволило мне знать, который является checkbox, который бросил событие, и, и который пользователь представляет?

1
задан 07.08.2017, 17:05
2 ответа

В общем parÃ: метр sender соответствует контролю, что lanzà событие из-за, то, что в этом случае:

public void Check_Clicked(object sender, EventArgs e) 
{
    var checkbox = (CheckBox)sender;

    // ...
}

checkbox содержит правильный checkbox

2
ответ дан 29.10.2019, 23:56
  • 1
    Faltarí чтобы получать informació n Пользователя (например Ваш Пойдите), чтобы обновлять Ваше состояние – Davlio 07.08.2017, 17:25
  • 2
    Спасибо за ответ, таким образом, obteno checkbox, но как говорит Davlio, которого мог бы знать форму пользователь с тем, которого представляет checkbox? – Mr.K 07.08.2017, 17:45

Таким образом, я решил:

в definicio checkboxs добавил свойство username

<asp:CheckBox Checked=<%# Item.Disabled %> runat="server" 
                                        AutoPostBack="True" username = "<%# Item.UserName %>"
                                        OnCheckedChanged="Check_Clicked"></asp:CheckBox>

и я определил такое событие

 public void Check_Clicked(object sender, EventArgs e) 
    {
        if (sender != null)
        {
            CheckBox checkbox = (CheckBox)sender;
            string username = checkbox.Attributes["username"];

            UserManager manager = new UserManager();
            Usuario usuario = manager.FindByName(username);

            usuario.Disabled = checkbox.Checked;
            manager.Update(usuario);
        }
    }

Спасибо за помощь.

1
ответ дан 29.10.2019, 23:56