2014-01-06 6 views
2

Я использую кнопку div как кнопку изображения, так как ASP Imagebutton вызывал мгновенную щелчку, несмотря ни на что.Использовать событие Div Click как Trigger UpdatePanel

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

Теперь он дает ошибку -

'Div1 быть reistered через RegisterAsyncPostBackControl или RegisterPostBackControl должны осуществлять либо INamingContainer, IPostBackDataHandler или IpostbackEventHandler'

ASPX:

<div id="div1" runat="server" class="search"></div> 
<asp:UpdatePanel runat="server" updatemode="conditional"> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="divSearch" EventName="Click"/> 
</Triggers> 
<ContentTemplate> 
    <asp:gridview....../> 
</ContentTemplate> 
</asp:UpdatePanel> 

C#:

public partial class Home: System.Web.UI.Page, IPostBackEventHandler 
{ 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     div1.Attributes["onclick"] = ClientScript. 
            GetPostBackEventReference(this, "div1_Click"); 
    } 

    protected void div1_Click() 
    { 
     bindGrid(); 
    } 

    public void RaisePostBackEvent(string eventArgument) 
    { 
     if (!string.IsNullOrEmpty(eventArgument)) 
     { 
     if (eventArgument == "div1_Click") 
      { 
      div1_Click(); 
      } 
     } 
    } 
} 

Любой способ сделать эту работу?

+0

ошибка говорит все: «* InamingContainer, IpostBackDataHandler или IpostbackEventHandler *». Вместо этого попробуйте 'asp: panel'. – Abhitalks

+0

№. то же самое. Это сработало для вас? – Ruby

+0

Это потому, что тег div не поддерживает событие PostBack. –

ответ

0

Вы можете добавить внутри кнопки обновления кнопку asp, эту кнопку с отображением свойства css = none и с jquery на нажатие div нажмите триггер нажатием кнопки asp.

<div id="jqmCollapsibleDiv" data-role="collapsible"> 
      <h3>Title</h3> 
      <asp:UpdatePanel runat="server" ID="UpdatePannel1"> 
       <ContentTemplate> 
        <%-- Update pannel content --%> 
       <div style="display: none"> 
        <asp:Button runat="server" ID="btnTrigger" OnClick="btnTrigger_Click" /> 
       </div> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </div> 

код JQuery

 $("#jqmCollapsibleDiv").collapsible({ 
      expand: function (event, ui) { 
       $("#btnTrigger").click(); 
      } 
     }); 

Если вы не используете JQuery мобильный складной и использовать простой HTML DIV, добавить TabIndex в DIV и использовать событие Click:

$('#simpleHtmlDiv').click(function(){ 
    $("#btnTrigger").click(); 
}); 
Смежные вопросы