2012-04-20 11 views
2

jqueryダイアログボックス内にあるgridviewを更新する方法はありますか?私はボタンが機能しているが、gridviewは更新されていない。以下は私のコードです。jqueryダイアログ内にあるgridviewを更新します。(ASP.net C#)

JS:

<script type="text/javascript" language="javascript"> 

$(document).ready(function() { 

    function BindEvents() { 


     //alerts dialog 
     $("#pnlAlerts").dialog({    
      autoOpen: false, 
      modal: true, 
      width: 700,    
      open:function(){{ 
       $(this).parent().appendTo($("form:first")); 
      }} 

     }); 

     $('.openAlert').click(function() {   
      $('#pnlAlerts').dialog('open'); 
     }); 
      } 

    BindEvents(); 

}); 

フロントエンド:

GridViewのはどちらかを更新したページのトリガーにポストバックを持っているか、サーバー側を行う必要があるようにするためには
  <asp:Panel runat="server" ID="pnlAlerts" Visible="true" class="alert-dialog"> 

      <asp:UpdatePanel ID="updPanelAlert" runat="server" > 
       <ContentTemplate> 
        <asp:Label id="lblDatabaseStatus" runat="server" CssClass="left found" /> 

        <asp:Panel id="pnlAlert" Runat="Server" Visible="true"> 

         <div id="table-search"> 
          <asp:Button ID="btnDelete" runat="server" Text="Delete" CssClass="btn normal-btn left" onclick="btnDelete_Click" /> 
          &nbsp;&nbsp;<asp:Button ID="btnMark" runat="server" Text="Mark as Read" CssClass="btn normal-btn left" onclick="btnMark_Click" /> 
          <!-- Loader --> 
          <asp:UpdateProgress ID="updProgress" runat="server" AssociatedUpdatePanelID="updPanelAlert" class="loader" DisplayAfter="1"> 
           <ProgressTemplate> 
             <asp:Image ID="imgPleaseWait" runat="server" ImageUrl="~/images/pleasewait.gif" /> 
           </ProgressTemplate> 
          </asp:UpdateProgress> 

          <div class="nip"> 
          </div> 
          <br class="clear"/> 
         </div> 
         <asp:SqlDataSource ID="sqldsAlert" runat="server" 
          ConnectionString="<%$ ConnectionStrings:ABCDB %>" 
          SelectCommand="sp_AlertsGet" SelectCommandType="StoredProcedure"> 
          <SelectParameters> 
           <asp:ControlParameter ControlID="lblUserID" Name="UserID" Type="String" Direction="Input" /> 
           <asp:Parameter DefaultValue="null" Direction="InputOutput" Name="op_status" 
            Type="String" /> 
          </SelectParameters> 
         </asp:SqlDataSource> 
         <asp:Panel id="pnlAlertGrid" runat="server" ScrollBars="Auto" EnableTheming="false"> 
          <!-- Table data --> 
          <asp:GridView id="gvAlertGrid" runat="server" CssClass="grid" 
           GridLines="Vertical" DataKeyNames="AlertID" AutoGenerateColumns="False" 
           width="100%" PageSize="50" Border="0" 
           AllowPaging="True" AllowSorting="True" PagerSettings-Position="Bottom" 
           DataSourceID="sqldsAlert"> 

           <Columns> 

            <asp:TemplateField HeaderText="AlertID" Visible="false"> 
             <ItemTemplate> 
              <asp:Label ID="lblAlertID" Text='<%# Eval("AlertID")%>' runat="server" /> 
             </ItemTemplate> 
            </asp:TemplateField> 

            <asp:TemplateField HeaderText="&nbsp"> 
             <itemTemplate> 
              <asp:CheckBox ID="cbDeleteMark" width="25px" Checked="false" runat="server" Enabled="True"/> 
             </itemTemplate> 
            </asp:TemplateField> 

            <asp:TemplateField HeaderText="Subject" SortExpression="AlertSubject"> 
             <itemTemplate> 
              <asp:Label ID="lblAlertSubject" Text='<%# Eval("AlertSubject")%>' ForeColor='<%# SetColor(Eval("ReadStatus"))%>' runat="server" /> 
             </itemTemplate> 
            </asp:TemplateField> 

            <asp:TemplateField HeaderText="Type" SortExpression="Priority"> 
             <itemTemplate> 
              <asp:Label ID="lblPriority" Text='<%# Eval("Priority")%>' ForeColor='<%# SetPriorityColor(Eval("ReadStatus"), Eval("Priority"))%>' runat="server" /> 
             </itemTemplate> 
            </asp:TemplateField> 

            <asp:templatefield headertext="Received" SortExpression="Date"> 
             <itemtemplate> 
              <asp:label id="lblDate" ForeColor='<%# SetColor(Eval("ReadStatus"))%>' 
              text= '<%# String.Format("{0:dd/MM/yy}",Eval("[Date]")) %>' 
              runat="server"/> 
             </itemtemplate> 
             <ItemStyle HorizontalAlign="Center" />       
            </asp:templatefield> 

           </columns> 
          </asp:GridView> 
         </asp:Panel> 
        </asp:Panel> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
      <asp:Label runat="server" ID="lblUserID" Visible="false"></asp:Label> 
     </asp:Panel>    

答えて

2

GridViewでDataBindを呼び出します。

__doPostBack('<%= Button.ClientID %>',''); 

これは結果的にGridViewをリフレッシュ、更新パネルをリフレッシュする必要があります:あなたが試みることができる

別のオプションは、更新パネルに隠しボタンを追加し、呼び出しです。

jqueryを開くと、パネル "pnlAlerts"がモーダルダイアログとして閉じられます。

GridViewでデータを編集する場合は、EditTemplatesが必要です。

希望に役立ちます。

関連する問題