Reputation: 317
i have this linkbutton inside my repeater that should edit a user. i just debugged and i see that the code never goes to code behind (aspx.cs) unless i submit, but not when selecting. how do i solve this?
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;
}
Upvotes: 0
Views: 967
Reputation: 813
if I'm correct the 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>
Returns a false from
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;
}
The return false stops a postback.
hope this helps
Upvotes: 2