2009-12-09 89 views
0

我在UpdatePanel中有一个imageButton,带有一些控件(2个下拉列表,3个文本框)。ASP.NET页面事件 - 按钮必须点击两次才能触发事件

当我更改任何文本框的文本时,需要点击两次ImageButton来触发onClick事件。

我只是不明白为什么会发生,因为我有任何与文本框相关的事件。

任何想法?

谢谢!

好的,只是编辑显示我的代码。

这是在UpdatePanel里的东西是:

<asp:UpdatePanel ID="upBusca" runat="server"><ContentTemplate> 
<asp:UpdateProgress ID="pMaster" runat="server"><ProgressTemplate><div id="loaderOverlay"></div><div id="loader"><img alt="Carregando..." src='<%# "/imagens/" + ThemeName + "/loading.gif" %>' /><p>Carregando...</p></div></ProgressTemplate></asp:UpdateProgress> 
<div style="float:left" id="busca"> 
<img src='<%# "/imagens/" + ThemeName + "/busca-fundo-e.jpg" %>' class="esquerda" alt=""/> 
<img src='<%# "/imagens/" + ThemeName + "/busca-fundo-d.jpg" %>' class="direita" alt=""/> 
<p class="titulo">Utilize os campos abaixo para filtrar as operações registradas.</p>  
<div style="float:left"> 
<p><b>Status:</b></p> 
<asp:DropDownList ID="ddlStatus" runat="server"> 
    <asp:ListItem Selected="True" Value="T">Todos os títulos</asp:ListItem> 
    <asp:ListItem Value="3">Título liberado para antecipação</asp:ListItem> 
    <asp:ListItem Value="4">Antecipação solicitada</asp:ListItem> 
    <asp:ListItem Value="2">Título pago</asp:ListItem> 
    <asp:ListItem Value="5">Título não liberado para antecipação</asp:ListItem> 
</asp:DropDownList><br /> 
<p><b>Data:</b></p> 
    <asp:DropDownList ID="ddlData" runat="server" AutoPostBack="True" 
     onselectedindexchanged="ddlData_SelectedIndexChanged"> 
     <asp:ListItem Selected="True">-- Selecione --</asp:ListItem> 
     <asp:ListItem Value="dataEmissao">Emissão</asp:ListItem> 
     <asp:ListItem Value="solicitacao">Solicitação</asp:ListItem> 
     <asp:ListItem Value="vencimento">Vencimento</asp:ListItem> 
     <asp:ListItem Value="pagamento">Pagamento</asp:ListItem> 
    </asp:DropDownList> 
    &nbsp;&nbsp;<asp:TextBox ID="txtDtInicial" runat="server" AutoPostBack="True" 
     Visible="False"></asp:TextBox> 
    <asp:Label ID="lblA" runat="server" Text="à" Visible="False"></asp:Label> 
    <asp:TextBox ID="txtDtFinal" runat="server" AutoPostBack="True" Visible="False"></asp:TextBox> 
    <br /> 
<p><b>Nº Solicitação:</b></p> 
<asp:TextBox ID="txtSolicitacao" runat="server" AutoPostBack="True" ></asp:TextBox> 
    <br /> 
<p><b>Valor:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R$</p> 
<asp:TextBox ID="txtValor" runat="server" 
    AutoPostBack="True" MaxLength="12" 
     onkeypress="javascript:mascara(this, soMoeda);"></asp:TextBox> 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

<cc1:MaskedEditExtender ID="meDataD" runat="server" TargetControlID="txtDtInicial" 
     ClearMaskOnLostFocus="False" Mask="99/99/9999"> 
</cc1:MaskedEditExtender> 
<cc1:MaskedEditExtender ID="meDataAte" runat="server" TargetControlID="txtDtFinal" 
     ClearMaskOnLostFocus="False" Mask="99/99/9999"> 
</cc1:MaskedEditExtender> 
    <asp:ImageButton ID="imbBuscar" runat="server" 
     ImageUrl="~/imagens/Default/bt-busca.jpg" onclick="imbBuscar_Click" /> 
<br />  
</div> 
<div style="float:left">  
<p><b>Número NF:</b></p> 
<asp:TextBox ID="txtNf" runat="server" AutoPostBack="True" ></asp:TextBox> 
    <br />  
</div> 
</div><!-- Busca -->  
<hr /> 
</ContentTemplate> 
</asp:UpdatePanel> 

我不加入对网页加载任何控件。

+0

你是否“有任何与文本框相关的事件”? – DOK

+0

向我们展示一些代码! – MArag

回答

0

我猜你正在动态地将控件添加到页面,而且你每次都以不同的方式做它。如果您在将控件添加到页面时更改了控件的顺序,则无法找到将事件挂接到的正确控件,因为ID会不同。

我真的需要看到你的代码来正确诊断它。你需要提供更多的细节。

+0

对,我会告诉你我的代码:) – yuneyev

0

这可能不是答案,我只是把它扔在那里,但我看到你正在使用附加到文本框的扩展控件。就我个人而言,我发现MS ajax控件工具包扩展器经常会干扰基本功能,特别是MaskedEditExtender

尝试暂时删除扩展程序,看看问题是否仍然存在。

我把控制扩展器看成是beta版本,因为它们很好用。

0

你是否在调试器中运行这个以确保onclick处理程序实际上并没有第一次被调用?

我见过类似这样的情况,其中一个事件处理程序实际上被解雇,但由于在后面的代码中完成的事情的顺序,事件的变化结果不会呈现给浏览器,直到下一个请求被提出。

因此,下次单击该按钮时,将再次调用相同的事件处理程序,但回传给客户端的内容实际上是上次调用中所做的更改。

通常,如果您在page_load中进行数据绑定,但在实际事件处理程序中不进行重新绑定,则会发生此类事情。我看到这是一个有很多网格组件的LOT,尤其是对于排序和分页事件。

我们需要看完整的例子来确切地诊断出问题所在。

0

你看过生成的HTML,以确保它看起来好吗?

你有没有看过像Fiddler这样的Web调试器的HTTP对话?

相关问题