Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Problem using OnCommand in the linkbutton in a grid
Message
 
 
À
Tous
Information générale
Forum:
ASP.NET
Catégorie:
Code, syntaxe and commandes
Titre:
Problem using OnCommand in the linkbutton in a grid
Versions des environnements
Environment:
C# 3.0
OS:
Windows XP
Database:
MS SQL Server
Divers
Thread ID:
01328769
Message ID:
01328769
Vues:
57
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
Répondre
Fil
Voir

Click here to load this message in the networking platform