2017-02-09 4 views
0

У меня есть эта кнопка ссылки внутри моего ретранслятора, которая должна редактировать пользователя. я просто отлаживался, и я вижу, что код никогда не переходит в код позади (aspx.cs), если я не отправлю, но не при выборе. как я могу это решить?использовать атрибут onclientclick и код позади asp net

ASPX:

<asp:Repeater runat="server" OnItemCommand="rptList_OnItemCommand" ID="rptList"> 
     <ItemTemplate> 
       <%# OperatorId.HasValue && OperatorId == Convert.ToInt32(Eval("ID"))? "<tr style='background-color: #94C5E1;'>" : "<tr>" %> 
         <td> 
         <asp:LinkButton CommandName="selectBtn" ToolTip="TRNSLTEdit" ID="btnEdit" CssClass="editOperator" runat="server" CommandArgument='<%# Eval("ID")%>' OnClientClick="return PopupEdit(this)"> 
          <asp:Image ImageUrl="Images/Icons/Edit-16x16.png" ID="EditVisitor" runat="server" /> 
         </asp:LinkButton> 
         <div id="modalEdit" class="modal"> 
          <div class="modal-content"> 
           <p style="margin-left: 50px;"> 
            <img src="Images/Icons/Sip.png" alt="" /> 
            <%# Eval("FirstName") %> <%# Eval("SurName") %> 
           </p> 
           <br /> 
           <asp:DropDownList CssClass="ddlNodeClass" runat="server" ID="ddlNodeEdit" /> 
           <asp:DropDownList CssClass="ddlTranslatorClass" runat="server" ID="ddlTranslatorEdit" /> 
           <asp:LinkButton ToolTip="TRNSLTCancel" CommandArgument='<%# Eval("ID") %>' ID="btnNo" runat="server" CssClass="btnCancelClass" OnClientClick="return Cancel(this)"> 
            <asp:Image ImageUrl="Images/Icons/Cancel-22x22.png" ID="SaveContact" runat="server" ClientIDMode="Static" /> 
           </asp:LinkButton> 
           <asp:LinkButton ToolTip="TRNSLTSave" CommandName="submitBtn" CommandArgument='<%# Eval("ID") %>' ID="btnYes" runat="server" CssClass="btnSaveClass"> 
            <asp:Image ImageUrl="Images/Icons/Check-22x22.png" ID="SaveOperator" runat="server" ClientIDMode="Static" /> 
           </asp:LinkButton> 
          </div> 
         </div> 
        </td> 
     </ItemTemplate> 

C#:

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

     var ddlNodeEdit = (DropDownList)e.Item.FindControl("ddlNodeEdit"); 
     var ddlTranslatorEdit = (DropDownList)e.Item.FindControl("ddlTranslatorEdit"); 

    switch (e.CommandName) 
    { 
     case "deleteBtn": 
      OperatorId = operatorId; 
      break; 

     case "noBtn": 
      break; 

     case "yesBtn": 
      _administrationSystem.DeleteOperator(tellusUserId, operatorId); 
      Response.Redirect("Attendants.aspx"); 
      break; 

     case "selectBtn": //The code never enters here 
      var profile = _administrationSystem.GetOperatorForEdit(tellusUserId, operatorId); 

      if (profile != null) 
      { 
       ViewState["Profile"] = profile; 
      } 
      break; 

     case "submitBtn": //The code enters here though 
      _administrationSystem.UpdateOperator(tellusUserId, operatorId, TellusUser.UserID, ddlNodeEdit.SelectedIndex + 1, Convert.ToInt64(ddlTranslatorEdit.SelectedValue), ""); 
      ViewState["ID"] = operatorId; 
      break; 
    } 
} 

JS:

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

    return false; 
} 
+0

может у вас, пожалуйста, покажите мне ur page_load код события. –

+0

ничего не происходит на странице загрузки. – Malphai

+0

Какой LinkButton? Что вы подразумеваете под _ "[...], но не при выборе" _? – krlzlx

ответ

2

если я правильна OnClientClick="return PopupEdit(this)"

<asp:LinkButton CommandName="selectBtn" ToolTip="TRNSLTEdit" ID="btnEdit" CssClass="editOperator" runat="server" CommandArgument='<%# Eval("ID")%>' OnClientClick="return PopupEdit(this)"> 
<asp:Image ImageUrl="Images/Icons/Edit-16x16.png" ID="EditVisitor" runat="server"/> 
</asp:LinkButton> 

Возвращает ложные из

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

    return false; 
} 

Возвращение ложно останавливает постбэк.

надеюсь, что это поможет