Linkbutton cliquez dans un asp:GridView cellule ne pas déclencher OnRowCommand événement

Fonctionnalité de l'INTERFACE utilisateur: j'ai un GridView avec quelques colonnes. Le plus important de la colonne est PcCode, ce qui montre une string valeur pour chaque ligne.

Devrait: Lorsque je clique sur l'une des cellules à partir d'une ligne de PcCode colonne d'une autre GridView doit être affiché. Cependant, lorsque j'essaie d'utiliser un asp:LinkButton pour une cellule, les choses ne fonctionnent pas. RowCommand ne pas se déclencher lorsque je clique sur un asp:LinkButton dans le GridView cellule. Où suis-je en train de faire des choses mauvaises? La manière dont de la fonctionnalité attendue peut être réalisé? Merci à l'avance pour aider un débutant.

Dans le code suivant, j'ai essayé d'obtenir un RowIndex et le passer à travers la CommandArgument et l'utilisation d'un CommandName.

.code aspx

<asp:GridView ID="_UIProfitcenterTotalGridView" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" PageSize="22" ShowFooter="True" AutoGenerateColumns="False"
    DataKeyNames="ProfitcenterCode" EnableViewState="False" 
    OnRowDataBound="_UIProfitcenterTotalGridView_RowDataBound"
    OnPageIndexChanging="_UIProfitcenterTotalGridView_PageIndexChanging" 
    OnRowCommand="_UIProfitcenterTotalGridView_OnRowCommand">
    <Columns>

       <asp:TemplateField HeaderText="PcCode" InsertVisible="False" 
            ShowHeader="False" SortExpression="ProfitcenterCode" FooterText="Total" FooterStyle-HorizontalAlign="Left">
            <ItemTemplate>
               <asp:LinkButton ID="_UIPCCodeLinkButton" runat="server" Text='<%# Eval("ProfitcenterCode") %>'  
                CommandName="Select" 
                CommandArgument='<%# ((GridViewRow) Container).RowIndex  %>'>
               </asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField> 
...

le code derrière pour aspx.cs

 protected void _UIProfitcenterTotalGridView_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Select")
        {
            int index = Convert.ToInt32(e.CommandArgument);
            GridViewRow row = _UIProfitcenterTotalGridView.Rows[index];
            string ProfitcenterCode = _UIProfitcenterTotalGridView.DataKeys[_UIProfitcenterTotalGridView.SelectedIndex].Values["ProfitcenterCode"].ToString();
        }
    }

Après la ligne est sélectionnée j'ai besoin de prendre de la ligne sélectionnée de la valeur sous forme de chaîne et de les comparer avec une listitem à montrer une nouvelle GridView.

Essayé

  • À l'aide de Link_Button_Click(Object sender, EventArgs e) et le suivant, mais a échoué.

    protected void _UIProfitcenterTotalGridView_Rowcommand(object sender, GridViewCommandEventArgs e)
    {
    si (e.CommandName == "Select")
    {string ProfitcenterCode = ((GridViewRow)(((LinkButton)e.CommandSource).NamingContainer)).Les cellules[2].Texte;
    }
    }

InformationsquelleAutor shaz | 2013-03-06