2014-01-14 25 views
0

我在asp.net web窗體中有兩個按鈕。一個按鈕事件由asp.net onclick事件處理。我有另一個按鈕,其單擊事件由jquery處理。如果我點擊jquery按鈕它首先它工作正常。但如果我點擊asp.net按鈕,然後jQuery按鈕。 jquery事件不會觸發。jQuery按鈕與asp.net按鈕。 jquery沒有解僱

有什麼建議嗎?

<script type="text/javascript"> 
     $(function() { 
      $("#tabs").tabs(); 
      return false; 
     }); 
     $(document).ready(function() { 
      $(function() { 
       $("#<%=btnSubmitcommunication.ClientID %>").click(function() { 
        alert('hi'); 
        return false; 
        }); 
      }); 

     }); 
     function HeaderClick_Roles(checkBox) { 
      var i; 
      if (checkBox.checked) { 
       for (i = 0; i < document.forms[0].elements.length; i++) { 
        if ((document.forms[0].elements[i].type == 'checkbox') && 
          (document.forms[0].elements[i].name.indexOf('chkBxSelect') > -1)) { 
         document.forms[0].elements[i].checked = true; 
        } 
       } 
      } 
      else { 
       for (i = 0; i < document.forms[0].elements.length; i++) { 
        if ((document.forms[0].elements[i].type == 'checkbox') && 
          (document.forms[0].elements[i].name.indexOf('chkBxSelect') > -1)) { 
         document.forms[0].elements[i].checked = false; 
        } 
       } 
      } 
     } 
     function Check_Click(objRef) { 
      //Get the Row based on checkbox 
      var row = objRef.parentNode.parentNode; 

      //Get the reference of GridView 
      var GridView = row.parentNode; 

      //Get all input elements in Gridview 
      var inputList = GridView.getElementsByTagName("input"); 

      for (var i = 0; i < inputList.length; i++) { 
       //The First element is the Header Checkbox 
       var headerCheckBox = inputList[0]; 

       //Based on all or none checkboxes 
       //are checked check/uncheck Header Checkbox 
       var checked = true; 
       if (inputList[i].type == "checkbox" && inputList[i] != headerCheckBox) { 
        if (!inputList[i].checked) { 
         checked = false; 
         break; 
        } 
       } 
      } 
      headerCheckBox.checked = checked; 

     } 

    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <div id="tabs"> 
     <ul> 
      <li><a href="#tabs-1"> View1</a></li> 
      <li><a href="#tabs-2">View2</a></li> 
      <li><a href="#tabs-3">view3</a></li> 
     </ul> 
     <div id="tabs-1"> 
      <asp:UpdatePanel ID="updatePanel" runat="server"> 
       <ContentTemplate> 
        <table class="table"> 
         <tr style="height: 34px;"> 
          <td style="width: 150px; text-align: left;"> 
           <asp:Label ID="lblfilteredbystatement" runat="server" Text="Filtered By Statement Type" /> 

          </td> 
          <td> 
           <asp:DropDownList ID="ddlStatement" runat="server" CssClass="ddlList" /> 
          </td> 
          <td> 
           <br /> 
          </td>enter code here 
         </tr> 
         <tr style="height: 34px;"> 
          <td style="text-align: left;"> 
           <asp:Label ID="lblFIlteredDepartment" runat="server" Text="Filtered By Department" /> 

          </td> 
          <td> 
           <asp:DropDownList ID="ddlDepartment" runat="server" CssClass="ddlList" /> 
          </td> 
          <td></td> 
         </tr> 
         <tr> 
          <td style="text-align: left;"> 
           <asp:Label ID="lblFilteredByDivision" runat="server" Text="Filtered By Division" /> 

          </td> 
          <td> 
           <asp:DropDownList ID="ddlDivision" runat="server" CssClass="ddlList" /> 
          </td> 
          <td style="text-align: right;"> 
           <asp:Button ID="btnSearch" runat="server" Text="Search" CssClass="ButtonSmall" /> 
          </td> 
         </tr> 
        </table> 
        <br /> 
        <asp:GridView ID="grdCommunication" runat="server" AutoGenerateColumns="False" 
         ShowHeaderWhenEmpty="True" Visible="True" CssClass="gridview"> 
         <HeaderStyle CssClass="gridviewheader" /> 
         <RowStyle CssClass="gridviewrows" /> 
         <AlternatingRowStyle CssClass="gridviewalternatingrows" /> 
         <Columns> 
          <asp:TemplateField ControlStyle-Width="100px" HeaderText="Staff ID" Visible="true"> 
           <ControlStyle Width="100px" /> 
           <HeaderStyle HorizontalAlign="Center" /> 
           <ItemStyle HorizontalAlign="Center" /> 
           <ItemTemplate> 
            <asp:Label ID="lblStaffd" runat="server"></asp:Label> 
           </ItemTemplate> 
          </asp:TemplateField> 
          <asp:TemplateField ControlStyle-Width="100px" HeaderText="Staff Name <br />(Eligible Group)" 
           Visible="true"> 
           <ControlStyle Width="100px" /> 
           <HeaderStyle HorizontalAlign="Center" /> 
           <ItemStyle HorizontalAlign="Center" /> 
           <ItemTemplate> 
            <asp:Label ID="lblEligibleGroup" runat="server"></asp:Label> 
           </ItemTemplate> 
          </asp:TemplateField> 
          <asp:TemplateField ControlStyle-Width="100px" HeaderText="Annual Salary <br/>(Prior Year)" 
           Visible="true"> 
           <ControlStyle Width="100px" /> 
           <HeaderStyle HorizontalAlign="Center" /> 
           <ItemStyle HorizontalAlign="Center" /> 
           <ItemTemplate> 
            <asp:Label ID="lblAnnualSalary" runat="server"></asp:Label> 
           </ItemTemplate> 
          </asp:TemplateField> 

          <asp:TemplateField HeaderText="Communicated?" Visible="true"> 
           <ItemTemplate> 
            <asp:CheckBox ID="chkBxSelect" runat="server" Visible="true" Checked="true" onClick="javascript:Check_Click(this);" /> 
           </ItemTemplate> 
           <HeaderTemplate> 
            <asp:CheckBox ID="chkBxHeader" runat="server" Text="Communicated?" onClick="javascript:HeaderClick_Roles(this);" /> 
           </HeaderTemplate> 
           <HeaderStyle HorizontalAlign="Center"></HeaderStyle> 
           <ItemStyle HorizontalAlign="Center"></ItemStyle> 
          </asp:TemplateField> 
         </Columns> 
        </asp:GridView> 
        <br /> 
        <asp:Button ID="btnSubmitcommunication" runat="server" Text="Communicate" CssClass="buttonSubmit" Visible="true" ClientIDMode="Static" /> 

       </ContentTemplate> 
      </asp:UpdatePanel> 
     </div> 
     <div id="tabs-2"> 
      <p> 
       HR BP View 
      </p> 
     </div> 
     <div id="tabs-3"> 
      <p> 
       Submitted Records 
      </p> 
     </div> 
+2

並且代碼在哪裏? –

+0

@MilindAnantwar對不起忘了張貼代碼 – user3193026

+0

如果我在btnSubmitcommunication點擊它工作正常,但如果點擊btnSearch第一,然後我jqery停止射擊 – user3193026

回答

0

相反的:

$("#<%=btnSubmitcommunication.ClientID %>").click(function()... 

這樣做:

$(".buttonSubmit").click(function()... 

原因:您正在使用的UpdatePanel,這意味着內容將被載入直通阿賈克斯,因此結合DONE在頁面的前面將不再可用。最簡單的方法是使用獨特的類,然後使用它來綁定您的事件。

更妙的是,使用您的包裝代表團:

$('div.tabs-1').on("click", function(e) { 
    var $elem = $(e.target); 
    if ($elem.hasClass('buttonSubmit')) { 
     ... // your click code here 
    } 
    ... 
});