Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Problem using OnCommand in the linkbutton in a grid
Message
 
 
To
All
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Title:
Problem using OnCommand in the linkbutton in a grid
Environment versions
Environment:
C# 3.0
OS:
Windows XP
Database:
MS SQL Server
Miscellaneous
Thread ID:
01328769
Message ID:
01328769
Views:
56
Hi everybody,

I found that for some reason only each second click works and the first doesn't seem to do anything.
I'm using a form with MultiView and an UpdatePanel. Each gridview is in its own UpdatePanel.

Here is relevant ASPX piece:
<td colspan="3" style="background-color: white;">
                                        <div id="divUserRoles" style="display: block; text-align: center;">
                                            <br />
                                            <asp:Label ID="lblUserRoles" runat="server" EnableViewState="False" Text="Select User to display his/her Roles"
                                                Width="475px" Font-Bold="True"></asp:Label><br />
                                            <asp:ObjectDataSource ID="odsSelectUsers" runat="server" DeleteMethod="Delete" InsertMethod="Insert"
                                                OldValuesParameterFormatString="original_{0}" SelectMethod="GetMembers" SortParameterName="SortData"
                                                TypeName="MembershipUtilities.MembershipUserAndProfileODS">
                                                <DeleteParameters>
                                                    <asp:Parameter Name="UserName" Type="String" />
                                                </DeleteParameters>
                                                <UpdateParameters>
                                                    <asp:Parameter Name="userName" Type="String" />
                                                    <asp:Parameter Name="email" Type="String" />
                                                    <asp:Parameter Name="isLockedOut" Type="Boolean" />
                                                    <asp:Parameter Name="isApproved" Type="Boolean" />
                                                    <asp:Parameter Name="comment" Type="String" />
                                                    <asp:Parameter Name="lastActivityDate" Type="DateTime" />
                                                    <asp:Parameter Name="lastLoginDate" Type="DateTime" />
                                                    <asp:Parameter Name="fCID" Type="Int32" />
                                                    <asp:Parameter Name="fCWebAdminID" Type="Int32" />
                                                    <asp:Parameter Name="siteID" Type="Int32" />
                                                    <asp:Parameter Name="firstName" Type="String" />
                                                    <asp:Parameter Name="middleName" Type="String" />
                                                    <asp:Parameter Name="lastName" Type="String" />
                                                    <asp:Parameter Name="jobTitle" Type="String" />
                                                    <asp:Parameter Name="telephoneNum" Type="String" />
                                                </UpdateParameters>
                                                <SelectParameters>
                                                    <asp:ProfileParameter Name="sortData" PropertyName="SiteID" Type="String" />
                                                    <asp:Parameter DefaultValue="MasterAdmin" Name="ExcludeRole" Type="String" />
                                                    <asp:ProfileParameter Name="SiteID" PropertyName="SiteID" Type="Int32" />
                                                </SelectParameters>
                                                <InsertParameters>
                                                    <asp:Parameter Name="userName" Type="String" />
                                                    <asp:Parameter Name="isApproved" Type="Boolean" />
                                                    <asp:Parameter Name="comment" Type="String" />
                                                    <asp:Parameter Name="lastLockoutDate" Type="DateTime" />
                                                    <asp:Parameter Name="creationDate" Type="DateTime" />
                                                    <asp:Parameter Name="email" Type="String" />
                                                    <asp:Parameter Name="lastActivityDate" Type="DateTime" />
                                                    <asp:Parameter Name="providerName" Type="String" />
                                                    <asp:Parameter Name="isLockedOut" Type="Boolean" />
                                                    <asp:Parameter Name="lastLoginDate" Type="DateTime" />
                                                    <asp:Parameter Name="isOnline" Type="Boolean" />
                                                    <asp:Parameter Name="passwordQuestion" Type="String" />
                                                    <asp:Parameter Name="lastPasswordChangedDate" Type="DateTime" />
                                                    <asp:Parameter Name="password" Type="String" />
                                                    <asp:Parameter Name="passwordAnswer" Type="String" />
                                                    <asp:Parameter Name="fCID" Type="Int32" />
                                                    <asp:Parameter Name="fCWebAdminID" Type="Int32" />
                                                    <asp:Parameter Name="siteID" Type="Int32" />
                                                    <asp:Parameter Name="firstName" Type="String" />
                                                    <asp:Parameter Name="middleName" Type="String" />
                                                    <asp:Parameter Name="lastName" Type="String" />
                                                    <asp:Parameter Name="jobTitle" Type="String" />
                                                    <asp:Parameter Name="telephoneNum" Type="String" />
                                                </InsertParameters>
                                            </asp:ObjectDataSource>
                                            <asp:DropDownList ID="ddlUsers" runat="server" AutoPostBack="True" ToolTip="Select User to show his/her Roles"
                                                Width="176px" DataSourceID="odsSelectUsers" DataTextField="UserName" DataValueField="UserName">
                                            </asp:DropDownList>
                                            <br />
                                            <br />
                                            <asp:UpdatePanel ID="upUserRoles" UpdateMode="Always" runat="server">
                                                <ContentTemplate>
                                                    </div> </td> </tr>
                                                    <asp:GridView ID="grdvwUserRoles" runat="server" AutoGenerateColumns="False" CellPadding="4"
                                                        ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="5" 
                                                        OnRowCreated="grd_RowCreated" ToolTip="User Roles" Width="471px" DataKeyNames="RoleName"
                                                        DataSourceID="odsUserRoles" OnRowDataBound="grdvwUserRoles_RowDataBound">
                                                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                                        <Columns>
                                                            <asp:BoundField DataField="UserName" HeaderText="User Name" SortExpression="UserName" />
                                                            <asp:BoundField DataField="RoleName" HeaderText="Role" ReadOnly="True" SortExpression="RoleName" />
                                                            <asp:BoundField DataField="NumberOfUsersInRole" HeaderText="Total # of Users in Role"
                                                                SortExpression="NumberOfUsersInRole" />
                                                            <asp:TemplateField>
                                                                <ItemTemplate>
                                                                    <asp:LinkButton ID="lnkbtnRemoveRole" runat="server" CausesValidation="false" CommandName="RemRole"
                                                                        OnCommand="lnkbtnRemoveRole_Command" Text="Remove Role" />
                                                                </ItemTemplate>
                                                            </asp:TemplateField>
                                                        </Columns>
                                                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                                        <EditRowStyle BackColor="#999999" />
                                                        <EmptyDataTemplate>
                                                            <span style="color: #B0C4DE;">No Roles assigned for that user</span>
                                                        </EmptyDataTemplate>
                                                        <SelectedRowStyle BackColor="LightCyan" ForeColor="DarkBlue" Font-Bold="True" />
                                                        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                                        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                                                    </asp:GridView>
                                                    <asp:ObjectDataSource ID="odsUserRoles" runat="server" DeleteMethod="Delete" InsertMethod="Insert"
                                                        OldValuesParameterFormatString="original_{0}" SelectMethod="GetRoles" TypeName="MembershipUtilities.RoleDataObjectForMP">
                                                        <DeleteParameters>
                                                            <asp:Parameter Name="roleName" Type="String" />
                                                        </DeleteParameters>
                                                        <SelectParameters>
                                                            <asp:ControlParameter ControlID="ddlUsers" Name="userName" PropertyName="SelectedValue"
                                                                Type="String" />
                                                            <asp:Parameter DefaultValue="true" Name="showOnlyAssignedRoles" Type="Boolean" />
                                                        </SelectParameters>
                                                        <InsertParameters>
                                                            <asp:Parameter Name="roleName" Type="String" />
                                                        </InsertParameters>
                                                    </asp:ObjectDataSource>
                                                </ContentTemplate>
                                            </asp:UpdatePanel>
This is code in RowDataBound for this grid:
protected void grdvwUserRoles_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
      //  DataRowView view = e.Row.DataItem as DataRowView;
         
        string RoleName = e.Row.Cells[1].Text;   //view["RoleName"].ToString() ;
        string UserName = e.Row.Cells[0].Text; //view["UserName"].ToString() ;

        LinkButton link = e.Row.FindControl("lnkbtnRemoveRole") as LinkButton;

        if (link != null)
        {           

            link.ToolTip = "Remove " + UserName + " from the " +
                RoleName + " role";
           
            link.Attributes["onclick"] =       
            "HideElement('" + this.lblProfStat.ClientID +
            "');var ch= confirm('Do you want to remove " + UserName + " from the " +
                RoleName + " role?' );if(ch==false) return false;else return true;";
            e.Row.ID = "Row" + RoleName;
            link.CommandArgument = RoleName;
        }       
    }
}
And here is the code in OnCommand
protected void lnkbtnRemoveRole_Command(object sender, CommandEventArgs e)
    {
        //int index = this.grdvwUsers.SelectedIndex;
        this.lblMsg.Text = "";
        this.lblProfStat.Visible = false;
        string username;
        string RoleName;
        //    LinkButton link = (LinkButton)sender;
        //    string username = link.CommandArgument; 
        //GridViewRow grdRow = (GridViewRow)link.Parent.Parent;
        if (e.CommandName.ToString() == "RemUser")
        {
            username = e.CommandArgument.ToString(); //this.HiddenField1.Value;
            RoleName = drpSelRole.SelectedItem.Value;
        }
        else
        {
            username = this.ddlUsers.SelectedValue;
            RoleName = e.CommandArgument.ToString() ;
        }
        try
        {
            Roles.RemoveUserFromRole(username, RoleName);
            // Re-bind users in role to GridView.
            this.tblProInfo.Visible = false;
            PopGrid();
            this.grdvwUserRoles.DataBind();  
        }
        catch (Exception ex)
        {
            lblMsg.Text = "An exception of type " + ex.GetType().ToString() +
                     " was encountered removing " + username + " from the role " + RoleName +
            Environment.NewLine + ex.Message;
        }
        
    }
Both grids are pointing to the same method. It looks like that one of the clicks in never even doing anything because if I put a breakpoint it doesn't go there.

Do you see what could be wrong?

I like to use Command instead of the Click because it gives me CommandEventArgs.

Thanks in advance.
If it's not broken, fix it until it is.


My Blog
Reply
Map
View

Click here to load this message in the networking platform