У меня есть сетка данных, которая создается динамически для отображения информации, полученной из базы данных. Сетка данных состоит из нескольких связанных столбцов и двух столбцов кнопок для каждой строки, кнопки просмотра и удаления.Необходимо дважды нажать кнопку для запуска события
Щелчок по любой кнопке вызывает метод Page_Load() с параметром Page.IsPostBack как false.
if (!Page.IsPostBack)
{
this.bindForm(); // Populates drop down lists that the user can select
setAccess(false); // Sets access for the page
// Stuff commented out to avoid confusion
}
else
{
bindDynamicGrids(); // Create the data grid(s) and populate them
}
Так что, когда я первый нажмите на кнопку выше код будет вызываться с IsPostBack ложным, а динамические сетки получить оценку. Но событие нажатия кнопки не срабатывает. Когда я нажимаю кнопку во второй раз, страница_Load вызывается с IsPostBack false, а после выполнения bindDynamicGrids() запускается событие нажатия кнопки. Я не могу понять разницу между первым и вторым щелчками.
Я прочел несколько потоков;
ASP.NET C#, need to press a button twice to make something happen
http://forums.asp.net/t/1783694.aspx?ASP+NET+Button+needs+to+be+clicked+twice
Чтобы попытаться понять этот вопрос, но я должен быть что-то отсутствует. Из того, что я собираю со второй ссылки, переменная сеанса может устанавливаться в событии клика, который также устанавливается в Page_Load, и это все проблема с упорядочением. Если это так, я не вижу, где это происходит.
Когда это не сообщение, вызывается метод bindForm(), который заполняет все выпадающие списки. Событие редактирования кликов заполняет эти выпадающие списки со значениями из строки, но событие click всегда является обратной записью и форма уже привязана.
Я также счел, что сценарий автоматически дважды щелкает по одной из кнопок в любое время, когда пользователь делает одно клик, но мне не удалось найти свойство «OnClick» для кнопки столбца. Любая помощь, которая может быть предоставлена, была бы феноменальной.
Пожалуйста, пост код для двух методов: 'bindForm()' и 'bindDynamicGrids()'. –
Я считаю, что любой элемент управления, созданный динамически или «на лету», не регистрирует события сразу, вы должны подписаться на них? Я помню, как что-то повторялось, и динамические элементы управления в веб-формах asp.net вызывают проблемы. – JonH
Добавляйте элементы и события во время 'Page_Init'. – walther