2017-07-13 10 views
0

モーダルポップアップを確認で表示し、キャンセルボタンをクリックします。このボタンは、gridview内でボタンをクリックすると呼び出されます。しかし、onclick関数がクリックされたとき、私は特定の条件でscriptmanagerを呼び出しています。条件が満たされなかった場合は、それ以上の実行を停止します。クライアントスクリプトの呼び出し後に実行を停止する方法

これは私のWebフォームです:

<div id="modalPopUp" class="modal fade" role="dialog"> 
      <div class="modal-dialog modal-sm"> 
       <div class="modal-content"> 
        <div class="modal-header"> 
         <button type="button" class="close" data-dismiss="modal">&times;</button> 
         <h4 class="modal-title"> 
          <span id="spnTitle"></span> 
         </h4> 
        </div> 
        <div class="modal-body"> 
         <p> 
          <span id="spnMsg"></span>. 
         </p> 
        </div> 
        <div class="modal-footer"> 
         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
         <button type="button" id="btnConfirm" class="btn btn-primary"> 
          Yes, please</button> 
        </div> 
       </div> 
      </div> 
     </div> 
<asp:GridView ID="GrdChargeCodeProcessing" runat="server" 
    AutoGenerateColumns="False" 
    AllowSorting="true" AllowPaging="true" PageSize="7" 
    CssClass="table table-responsive table-bordered table-hover AspGridview"> 
    <PagerStyle CssClass="pagination" /> 
    <Columns> 
     <asp:TemplateField HeaderText="Select Code"> 
      <HeaderTemplate> 
       <asp:CheckBox ID="SelectAllCode" runat="server" OnCheckedChanged="SelectAllCode_CheckedChanged" AutoPostBack="true" /> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <asp:CheckBox ID="SelectCode" runat="server" OnCheckedChanged="SelectCode_CheckedChanged" AutoPostBack="true" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="TOTAL_MEMBERS" SortExpression="TOTAL_MEMBERS" HeaderText="Total Members"></asp:BoundField> 
     <asp:BoundField DataField="TOTAL_ANNEXURES" SortExpression="TOTAL_ANNEXURES" HeaderText="Total Annexures"></asp:BoundField> 
     <asp:BoundField DataField="PROCESSED_BY" SortExpression="PROCESSED_BY" HeaderText="Processed By"></asp:BoundField> 
     <asp:BoundField DataField="PROCESSED_DATE" SortExpression="PROCESSED_DATE" HeaderText="Processed Date"></asp:BoundField> 
     <asp:TemplateField HeaderText="Actions"> 
      <ItemTemplate> 
       <asp:Button ID="LnkViewButton" runat="server" Text="View" UseSubmitBehavior="false" OnClick="LnkViewButton_Click" CssClass="AspButton btn btn-primary"></asp:Button> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Actions" HeaderStyle-Width="120px"> 
      <HeaderTemplate> 
       <asp:LinkButton ID="LnkGenerateAllButton" BackColor="#ffffff" ForeColor="#000000" runat="server" OnClientClick="return getConfirmation(this, 'Please confirm','Are you sure you want to Generate Again?');" 
        OnClick="LnkGenerateAllButton_Click" CssClass="AspButton btn btn-primary"></asp:LinkButton> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <asp:LinkButton ID="LnkGenerateButton" runat="server" Font-Underline="true" 
        OnClick="LnkGenerateButton_Click" CssClass="AspButton btn btn-primary">Generate</asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
    <HeaderStyle BackColor="#0089d0" ForeColor="White" HorizontalAlign="Left" /> 
    <PagerStyle BackColor="#0089d0" Font-Bold="true" ForeColor="White" /> 
    <EmptyDataTemplate>No Record Found</EmptyDataTemplate> 
    <EditRowStyle BackColor="#c0e6fa" /> 
</asp:GridView> 

<script type="text/javascript"> 
      function getConfirmation(sender, title, message) { 
       console.log("asas"); 
       $("#spnTitle").text(title); 
       $("#spnMsg").text(message); 
       $('#modalPopUp').modal('show'); 
       $('#btnConfirm').attr('onclick', "$('#modalPopUp').modal('hide');setTimeout(function(){" + $(sender).prop('href') + "}, 50);"); 
       return false; 
      } 
     </script> 

これは、バックエンドである:

protected void LnkGenerateButton_Click(object sender, EventArgs e) 
{ 
    GridViewRow row = ((LinkButton)sender).NamingContainer as GridViewRow; 
    string ChargeCode = row.Cells[1].Text; 
    string path = ""; 
    CheckBox chktmp = (CheckBox)row.FindControl("SelectCode"); 
    if (chktmp.Checked == true) 
    { 
     FileGenerator file = new FileGenerator(); 
     //path = file.GenerateFiles(ChargeCode); 
     path = "asd"; 
     if (path == "") 
     { 
      path = file.GenerateAgain(ChargeCode); 
     } 
     else 
     { 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "getConfirmation", "getConfirmation(this, 'Please confirm','Are you sure you want to Generate Again?');",true); 
     } 

    } 
    else 
    { 
     string message = "Please select confirm box"; 
     string header = "Info"; 
     ScriptManager.RegisterStartupScript(this, this.GetType(), "LaunchServerSide", "openModal('" + message + "','" + header + "','');", true); 
    } 
} 

ファイル生成後、私はパスが空またはないとするときであるかどうかを確認したいです条件は、ユーザーが確認またはキャンセルを選択するポップアップを表示し、その応答で私は元にしたい残りのコードを確認してください。 ヘルプが表示されます。

+0

しかし、これにより、ユーザーはファイルを再度生成することができなくなります。そして私はそれを望んでいません – abhishek

+0

Page_LoadCompleteイベントの特定の行のボタンを無効にすることができます。私はそれがユーザーのためにはっきりしていると思う。 –

+0

私にデモンストレーションを見せることができますか? – abhishek

答えて

0

ループスルーグリッド。あなたの状態をチェックして、真の場合は無効にしてください。後でそれらを有効にすることができます(ボタンを削除して何かを生成するなど):

protected void Page_LoadComplete(object sender, EventArgs e){ 
    foreach(GridViewRow row in GridView1.Rows){ 
     ImageButton but = (ImageButton)row.FindControl("YourButtonID");   
     if(blabla){ 
     disableButton(but); 
     } 
    } 
} 
    private void disableButton(ImageButton btn_delete) 
    { 

     btn_delete.Enabled = false; 
     btn_delete.ImageUrl = "~/Pics/delete_small_disabled.gif"; 
    } 

    private void enableButton(ImageButton btn_delete) 
    { 

     btn_delete.Enabled = true; 
     btn_delete.ImageUrl = "~/Pics/delete_small.gif"; 
    } 
+0

この質問をお手伝いできますかhttps://stackoverflow.com/questions/45213246/how-to-show-modal-popup-with-yes-no-button-inside-loop-in-asp-net – abhishek

関連する問題