Я сделал сайт для проекта, на который можно зарегистрироваться. Он подключен к базе данных SQL.
Я пытаюсь создать страницу, на которой администраторы могут видеть информацию о различных существующих пользователях, а также удалить некоторых из них.
Проблема в том, чтоСистема запретов работает следующим образом: у всех пользователей есть отдельная кнопка запрета, идентификатор которой совпадает с именем пользователя, затем, если администратор хочет заблокировать пользователя, он нажимает кнопку запрета рядом с именем пользователя, затем запускается событие, иидентификатор кнопки, на которую нажал пользователь (которая, как я уже сказал, равна имени пользователя), отправляется с запросом, и каждый пользователь с таким именем удаляется.
Событие не срабатывает, когда я нажимаюодна из кнопок, сгенерированных кодом позади, но если я настроил кнопку на странице ASPX HTML с точно такими же свойствами, она прекрасно работает.
Это мой код позади:
{
public DbConnector Dbconnector = new DbConnector();
public string htmllist = "";
protected void Page_Load(object sender, EventArgs e)
{
if (Session["user"] == null) Server.Transfer("logincode.aspx");
if (Session["admin"] == null)
{
Server.Transfer("HomePage.aspx");
}
else
{
DbConnector dbc = new DbConnector();
SqlDataReader reader = dbc.read("SELECT * FROM UsersTable ORDER BY id");
while (reader.Read())
{
htmllist += $"<tr><td class=\"id\">{reader["Id"].ToString()}</td>";
htmllist += $"<td>{reader["Username"].ToString()}</td>";
htmllist += $"<td>{reader["Password"].ToString()}</td>";
htmllist += $"<td class = \"mail\">{reader["Email"].ToString()}</td>";
htmllist += $"<td>{reader["IsAdmin"].ToString()}</td>";
htmllist += $"<td><asp:Button runat=\"server\" name=\"{reader["Username"].ToString()}\" id=\"{reader["Username"].ToString()}\" class=\"btn\" value=\"Remove User\" OnClick=\"BanUser\"/></td></tr>";
htmllist += "<br />";
}
dbc.closeconnection();
}
}
protected void BanUser(object sender, EventArgs e)
{
Button button = (Button)sender;
string buttonid = button.ID;
string banquery = $"DELETE FROM UsersTable WHERE Username = '{buttonid}';";
new DbConnector().ExecuteCRUDQuery(banquery);
}
}
Я пытался это исправить часами, но безрезультатно. Кто-нибудь знает, что я сделал не так?
РЕДАКТИРОВАТЬ
Я хотел бы упомянуть, что я использовал элемент проверки, чтобы убедиться, что идентификаторы кнопок установлены правильно, и они,Это что-то вроде запуска мероприятия, которое не работает.