2009-11-25 2 views
1

У меня есть простая UpdatePanel и кнопка за ее пределами. Я ввел кнопку в качестве AsyncPostBackTrigger в UpdatePanel. Сам UpdatePanel отлично работает, но кнопка не работает. Всякий раз, когда нажимается кнопка, ее обработчик кликов не запускается так же, как кнопка не нажимается вообще!AsyncPostBackTrigger отключает кнопки

Почему кнопка не работает и как она может быть исправлена?


UPDATE: здесь разметка:

  <asp:UpdatePanel ID="upGridView" runat="server" UpdateMode="Conditional"> 
      <ContentTemplate> 
       <asp:GridView ID="grdList" SkinID="SimpleGridView" DataKeyNames="Key" runat="server" 
        AllowPaging="True" PageSize="15" AutoGenerateColumns="False" Caption="<%$ Resources: CommonResources, grdListCaption %>" 
        EmptyDataText="<%$ Resources: CommonResources, grdListEmptyDataText %>" OnRowEditing="grdList_RowEditing" 
        OnPageIndexChanging="grdList_PageIndexChanging" OnRowCreated="grdList_RowCreated"> 
        <Columns> 

        </Columns> 
       </asp:GridView> 
      </ContentTemplate> 
      <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="btnDelete" EventName="Click" /> 
       <asp:AsyncPostBackTrigger ControlID="btnNew" EventName="Click" /> 
       <asp:AsyncPostBackTrigger ControlID="btnForward" EventName="Click" /> 
      </Triggers> 
     </asp:UpdatePanel> 

     <asp:Button ID="btnDelete" runat="server" SkinID="Button" Text="<%$ Resources: CommonResources, btnDelete %>" 
      OnClick="btnDelete_Click" /> 
     <asp:Button ID="btnNew" runat="server" SkinID="Button" Text="<%$ Resources: CommonResources, btnNew %>" 
      OnClick="btnNew_Click" /> 
     <asp:Button ID="btnForward" runat="server" SkinID="Button" meta:resourcekey="btnForward" 
      OnClick="btnForward_Click" /> 
+0

любой шанс вы можете разместить свою разметку? – CaRDiaK

+0

Несомненно, обновленный вопрос с разметкой. –

+0

Если я также добавлю кнопки в UpdatePanel, он будет работать. –

ответ

1

в качестве прозрачной Страницы (Module) делает в Page_Load коснуться событиями, и это событие предотвратить potbacking вашей кнопки.

Я имею в виду Вы пытаетесь опубликовать назад, и Page_Load событие снова запустить и все появляются как в первый раз,

У меня был problemt и resolveit, поставив

if(!IsPostBack) 
     DoSomething(); 
0
<asp:UpdatePanel ID="UpdatePanel1" ChildrenAsTriggers="False" UpdateMode="Conditional" runat="server"> 
      <ContentTemplate> 
    <form id="form1" runat="server" defaultbutton="btnSearch"> 

    <div> 
      <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" 
runat="server"> 
     </asp:ScriptManager> 
    <script language="javascript" type="text/javascript"> 



    var prm = Sys.WebForms.PageRequestManager.getInstance(); 

    prm.add_initializeRequest(InitializeRequest); 
    prm.add_endRequest(EndRequest); 
    var postBackElement; 
    function InitializeRequest(sender, args) 
    { 

     if (prm.get_isInAsyncPostBack()) 
     args.set_cancel(true); 
     postBackElement = args.get_postBackElement(); 
     if (postBackElement.id == 'btnSearch') 
     $get('UpdateProgress1').style.display = 'block'; 

    } 



    function EndRequest(sender, args) 
    { 
     if (postBackElement.id == 'btnSearch') 
      $get('UpdateProgress1').style.display = 'none'; 

    } 



</script> 
    </div>   


     <asp:GridView ID> 

     <Columns> 
      <asp:TemplateField> 
      <HeaderTemplate> 
      <asp:Label ID="Label2" runat="server" Text="Status"></asp:Label> 
       <asp:CheckBox ID="chkSelectAll" runat="server" onclick="javascript:HighlightRow(this);" 
       AutoPostBack="true" ToolTip="Click here to select all checkboxes" 
       OnCheckedChanged="chkSelectAll_CheckedChanged"/> 
      </HeaderTemplate> 
      <ItemTemplate > 

      <asp:CheckBox ID="CheckBox1" onclick="javascript:HighlightRow(this);" 
         AutoPostBack="true" runat="server" 
         OnCheckedChanged="CheckBox1_CheckedChanged1" /> 


      </ItemTemplate> 

      </asp:TemplateField> 

    <asp:BoundField 
</asp:GridView> 

</ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="btnSearch" EventName="Click"/> 

     </Triggers> 
     </asp:UpdatePanel> 
      <asp:UpdateProgress ID="UpdateProgress1" AssociatedUpdatePanelID="UpdatePanel1" runat="server" ><ProgressTemplate> 
       <asp:Image ID="Imgwait" runat="server" 
        ImageUrl="~/Content/images/images/ApImages/001413_0.gif" /> 
       <asp:Label ID="Lblwait" runat="server" 
        Text="Please wait while we process your request...." Font-Names="Tahoma" 
        Font-Size="10px" ForeColor="#990000"></asp:Label> 
</ProgressTemplate> 
</asp:UpdateProgress> 

    <div style="position: absolute;left:55%;top: 65%; vertical-align:middle; width:300px; text-align:center"> 
<asp:Panel ID="IMGDV" runat="server" Width="300px" 
      BackColor="#3D3327" Visible="False" BorderStyle="Outset"> 
     <asp:Image ID="Image4" runat="server" 
      ImageUrl=" " Width="16px" 
      ToolTip="write your notes here for closure" /> 
    <asp:Label ID="Label1" runat="server" CssClass="GridHeader" 
      Text="Please Provide note ."></asp:Label> 
    <table style="border-style: solid; border-width: thin; width: 100%; background-color: #D3CCC2;"><tr><td style=" text-align:center"> 


     <asp:TextBox ID="TextBox2" Textmode="MultiLine" Height="80px" Width="250px" 
      CssClass="heading1" runat="server" ontextchanged="TextBox2_TextChanged" 
      BackColor="#D9D9CA" BorderColor="#3E1F00" BorderStyle="Inset"></asp:TextBox> 
    </td></tr> 
    </table> 

    <table style="border-style: outset; border-width: medium; width: 100%; background-color: #BDB2A4;"> 
    <tr> 

    <td style=" text-align:left"> 
    <asp:panel runat="server" ID="pnlsub" BackColor="#3D3327" 
     BorderStyle="Outset" Width="90%" ToolTip="Submit"> 

     <asp:Button ID="Button1" runat="server" Text="Submit" CssClass="Button" BorderStyle="Solid" BorderColor="#3D3327" onclick="Button1_Click"/> 
         </asp:panel> 
     </td> 
     <td style=" text-align:left"> 
     <asp:panel runat="server" ID="pnlcan" BackColor="#3D3327" 
     BorderStyle="Outset" Width="90%" ToolTip="Cancel"> 

      <asp:Button ID="Button2" runat="server" Text="Cancel" CssClass="Button" BorderStyle="Solid" BorderColor="#3D3327" onclick="Button2_Click"/> 
      </td> 
     </tr> 
      </table> 
     </asp:Panel > 
    </div> 

код позади

protected void CheckBox1_CheckedChanged1(object sender, EventArgs e) 
     { 
IMGDV.Visible = true; 

} 

На флажке checkchange событие хочет отобразить управление панелями, но оно не передается ying pannel control help ...

Смежные вопросы