Linkbutton klicken Sie in einem asp:GridView Zelle nicht auslösen OnRowCommand Veranstaltung

UI-Feature: ich habe eine GridView mit wenigen Spalten. Wichtigste Spalte ist PcCode, das zeigt eine string Wert für jede Zeile.

Erwartet: Wenn ich auf eine Zelle von einer Zeile, die PcCode Spalte eine andere GridView angezeigt werden soll. Allerdings, wenn ich versuche, mit einem asp:LinkButton für eine Zelle, die Dinge funktionieren einfach nicht. RowCommand nicht ausgelöst wenn ich auf eine asp:LinkButton im GridView Zelle. Wo mache ich etwas falsch? Die Art und Weise der erwarteten Funktionalität erreicht werden kann? Vielen Dank im Voraus für die Unterstützung eines Neulings.

In der folgende code, den ich versucht hatte zu bekommen RowIndex und führen Sie es durch die CommandArgument und verwenden Sie eine CommandName.

.aspx-code

<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> 
...

code für die 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();
        }
    }

Nachdem die Zeile ausgewählt, die ich brauchen, um die ausgewählte Zeile, die den Wert als string und vergleichen Sie mit einem Listenelement ein neues GridView.

Versucht

  • Mit Link_Button_Click(Object sender, EventArgs e) und die folgenden aber nicht.

    protected void _UIProfitcenterTotalGridView_Rowcommand(object sender, GridViewCommandEventArgs e)
    {
    if (- e.CommandName == "Select")
    {string ProfitcenterCode = ((GridViewRow)(((LinkButton)e.CommandSource).NamingContainer)).Zellen[2].Text;
    }
    }

InformationsquelleAutor shaz | 2013-03-06
Schreibe einen Kommentar