2017-01-17 2 views
0

Я сделал это всплывающее окно, которое не вызывает кнопку, которую я хочу. Пользователь выбирает контакт, контакт отображается кнопкой удаления, при нажатии появляется всплывающее окно подтверждения с еще двумя кнопками «Да» и «Нет», по какой-то причине они не запускаются.Корпус выключателя не запускается C# asp net

ASPX:

<asp:Repeater runat="server" OnItemCommand="rptList_OnItemCommand" ID="rptList"> 
<HeaderTemplate> 
    <table id="tblListContact"> 
     <tr id="tblRowContact"> 
      <th> 
       <asp:Label runat="server" Text="TRNSLTName" /> 
      </th> 
     </tr> 
</HeaderTemplate> 
<ItemTemplate> 

<td> 
    <asp:LinkButton runat="server" CommandName="selectContact" CommandArgument='<%# Eval("ID") %>'><%# Eval("Name") %></asp:LinkButton> 
</td> 
    <asp:LinkButton CssClass="deleteContact" ID="btnDelete" CommandName="deleteContact" CommandArgument='<%# Eval("ID") %>' runat="server" OnClientClick="return OpenPopup(this)"> 
    <asp:Image ImageUrl="Images/Icons/Deleted-16x16.png" ID="DeleteContact" runat="server" /> 
    </asp:LinkButton> 
<div id="myModal" class="modal"> 
    <div class="modal-content"> 
     <h3 class="modalHdr"> 
      <asp:Label runat="server" Text="TRNSLTRemove users" /></h3> 
     <p> 
      <asp:Label runat="server" Text="TRNSLTDelete Contact"></asp:Label> 
     </p> 
      <asp:Button CommandName="noBtn" CommandArgument='<%# Eval("ID") %>' ID="ButtonNo" runat="server" Text="TRNSLTNo" CssClass="popupConfirm" /> 
      <asp:Button CommandName="yesBtn" CommandArgument='<%# Eval("ID") %>' ID="ButtonYes" runat="server" Text="TRNSLTYes" CssClass="popupConfirm" /> 
    </div> 
</div> 

</ItemTemplate> 

C#:

/// <summary> 
    /// Assigning commands to repeater. 
    /// </summary> 
    protected void rptList_OnItemCommand(object source, RepeaterCommandEventArgs e) 
    { 
     var contactId = Convert.ToInt64(e.CommandArgument); 

     switch (e.CommandName) 
     { 
      case "selectContact": 
       divRead.Visible = true; 
       ContactId = contactId; 
       var getContact = _ecSystem.GetContact(contactId); 

       if (getContact != null) 
       { 
        lblName.Text = getContact.Name; 
        lblPhone.Text = getContact.PhoneNumber; 
        lblMobile.Text = getContact.Cellphone; 
        lblAdress.Text = getContact.Street; 
        lblNotes.Text = getContact.Notes; 
        lblPage.Text = getContact.Homepage; 
        lblEmail.Text = getContact.Email; 

        imgPhone.Visible = !string.IsNullOrEmpty(lblPhone.Text); 
        imgMobile.Visible = !string.IsNullOrEmpty(lblMobile.Text); 
        imgAddress.Visible = !string.IsNullOrEmpty(lblAdress.Text); 
        imgNotes.Visible = !string.IsNullOrEmpty(lblNotes.Text); 
        imgPage.Visible = !string.IsNullOrEmpty(lblPage.Text); 
        imgEmail.Visible = !string.IsNullOrEmpty(lblEmail.Text); 
       } 
       break; 

      case "deleteContact": //It never comes to these statements 
       ContactId = contactId; 
       break; 

      case "noBtn": //It never comes to these statements 
       break; 

      case "yesBtn": //It never comes to these statements 
       if (ContactId != null) 
       { 
        _ecSystem.DeleteContact(ContactId.Value); 
       } 
       ContactId = null; 
       Response.Redirect("Contact.aspx"); 
       break; 

      case "editContact": 
       divAdd.Visible = true; 
       _editMode = true; 
       var contacts = _ecSystem.GetContact(contactId); 
       if (contacts != null) 
       { 
        ViewState["Contacts"] = contacts; 
       } 
       break; 
     } 
    } 

JQuery:

function OpenPopup($this) { 
    if ($($this).attr("disabled") === "disabled") { 
     return false; 
    } 
    var module = $($this).parent().find("#myModal"); 
    module.show(); 
    window.onclick = function (event) { 
     if (event.target === module) { 
      module.hide(); 
     } 
    }; 

    return false; 
} 
+0

Есть опечатки в вашем файле 'CommandNames', Фейт' deleteContact ' –

+0

Итак, где я должен измениться? – Malphai

+1

ну, они должны быть одинаковыми –

ответ

2

Вы всегда возвращают false из OpenPopup. Так как вы используете.

OnClientClick="return OpenPopup(this)" 

обратной передачи будет отменен, если вы вернетесь false из OnClientClick. Вместо этого вы должны вернуть true, если хотите выполнить щелчок на сервере.

function OpenPopup($this) { 
    if ($($this).attr("disabled") === "disabled") { 
     return false; 
    } 
    var module = $($this).parent().find("#myModal"); 
    module.show(); 
    window.onclick = function (event) { 
     if (event.target === module) { 
      module.hide(); 
     } 
    }; 

    return true; 
} 

Помимо этого у вас есть опечатка, следующий должна быть таким же CommandName:

<asp:LinkButton ID="btnDelete" CommandName="deleteContact" 

Код:

case "deleteBtn" 
0

В вашей странице у вас есть

CommandName="deleteContact" 

и переключатель

case "deleteBtn" 

они не совпадают в коммутаторе вы должны использовать один и тот же Имя_команды

case "deleteContact" 
+0

Я изменил это, это не проблема. – Malphai

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