Что может привести к тому, что событие щелчка не сработает должным образом? - PullRequest
0 голосов
/ 03 августа 2011

У меня есть страница с кедитором и кнопкой «Сохранить». При загрузке я помещаю текст в редактор, чтобы пользователь мог его отредактировать, а затем сохранить. У меня возникают проблемы с кнопкой сохранения.

В моем коде есть следующий код.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Some Code

Protected Sub btgravar_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btgravar.Click
    Some Code

В обычных случаях, и если я ставлю точку останова в первой строке двух событий, происходит загрузка страницы, а затем событие щелчка. В некоторых случаях (и я не мог понять, когда) событие click не срабатывает. Загрузка страницы запускается, и затем страница обновляется без какого-либо сигнала кнопки сохранения.

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

Есть идеи, почему это происходит?

РЕДАКТИРОВАТЬ : редактор и кнопки (сохранить и вернуться) находятся внутри таблицы, здесь приведен фрагмент кода aspx (закрывающего элемента таблицы нет, потому что ниже этого элемента имеется cede)

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; height: 18px;" id="TABLE1" language="javascript" onclick="return TABLE1_onclick()">
                                            <tr>
                                                <td style="width: 24px; height: 25px; text-align: right">
                                        <asp:ImageButton ID="ImageButton1" runat="server" Height="20px" ImageUrl="~/Imagens/retorna.gif"
                                            Width="20px" /></td>
                                                <td style="width: 7px; height: 25px;">
                                                    <span style="font-size: 8pt; color: black">&nbsp;Cancelar</span></td>
                                                <td style="width: 28px; height: 25px; text-align: right">
                                                    <asp:ImageButton  ID="btgravar" runat="server" Height="20px" ImageUrl="~/Imagens/gravar.gif"
                                            Width="20px" ToolTip="Gravar Relatório" />
                                                </td>
                                                <td style="width: 46px; height: 25px;">
                                                    <span style="font-size: 8pt; color: #006666">&nbsp;<asp:Label ID="lblgravar" runat="server"
                                                        Font-Bold="False" Font-Size="8pt" ForeColor="Black">Gravar</asp:Label></span></td>

-

    <form id="form1" runat="server" enctype="multipart/form-data" >

-

function TABLE1_onclick() {

}

TABLE1_onclick () на самом деле не имеет значения и, вероятно, может быть извлечен из определения таблицы (?)

EDIT2 : Я пытался удалить клик из таблицы: без изменений. Я также уже пытался убрать кнопку изображения со стола и перейти прямо на страницу, и поведение сохраняется.

(Если вы хотите, чтобы я предоставил более подробную информацию / код моей страницы, просто спросите)

1 Ответ

1 голос
/ 03 августа 2011

Кажется, я что-то вижу:

В btgravar отсутствует обработчик событий OnClick.Вы должны добавить OnClick = "btgravar_Click" к кнопке изображения.

Если вы добавляете его где-то на странице, загрузите его с помощью

btgravar.Click += new ImageClickEventHandler(btgravar_Click); 

и убедитесь, что вы делаете это при каждой загрузке страницы даже при обратной передаче.

Редактировать:onclick отменит действие, только если оно вернуло false, и вы также вернулись в onClick.Это то, что я первоначально думал, но я провел некоторое тестирование с тем, что вы опубликовали, и кажется, что все в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...