problem med OnRowCommand i GridView

.NET

2 svar · 297 visningar · startad av Vinnaren

Medlem sedan sep. 2005833 inlägg
Trådstart#1

Har följande GridView:

<asp:GridView 
            ID="gvFile" 
            CssClass="adminFileList" 
            AlternatingRowStyle-CssClass="oddRow adminFileListRow" 
            AutoGenerateColumns="False" 
            RowStyle-CssClass="adminFileListRow" 
            EmptyDataText="Finns inga filer att visa" 
            EmptyDataRowStyle-CssClass="adminFileListEmpty" 
            runat="server" 
            OnRowCommand="gvFile_RowCommand" 
            OnDataBound="gvFile_DataBound">
           <Columns>
           
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="chkChecked" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
            
           
                <asp:TemplateField ItemStyle-CssClass="adminFileName" HeaderText="Filnamn">
                    <ItemTemplate>
                        <asp:LinkButton 
                        ID="lbtnFile" 
                        runat="server" 
                        Text='<%# Eval("Name") %>' 
                        ToolTip='<%# Eval("Name") %>' />
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField ItemStyle-CssClass="adminFileMeny">
                    <ItemTemplate>
                        <asp:ImageButton 
                            ID="ibtnDelete" 
                            CommandName="Delete" 
                            toolTip="Ta bort" 
                            CausesValidation="false" 
                            CommandArgument='<%# Eval("Name") %>' 
                            ImageUrl="~/bilder/filemanager/del.gif" 
                            runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                

                
            </Columns>
        </asp:GridView>

När man klickar på delete ska den raden tas bort, men följande kod vill inte fungera:

protected void gvFile_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Delete")
        {
            String lnkName = e.CommandArgument.ToString();

            File.Delete(Path.Combine(GetFolderPath(), lnkName));
            BindGrid();
        }
    }

Den går inte in i gvFile_RowCommand när man klickar på knappen ta bort.
Får inget felmeddelnde, utan det blir bara en postback.

Vad kan det vara för fel?

Tacksam för all hjälp :stud

Medlem sedan jan. 20022 440 inlägg
#2
<asp:ImageButton 
	ID="ibtnDelete" 
	CommandName="Delete" 
	[b]OnCommand="DeleteRow"[/b]
	toolTip="Ta bort" 
	CausesValidation="false" 
	CommandArgument='<%# Eval("Name") %>' 
	ImageUrl="~/bilder/filemanager/del.gif" 
	runat="server" />
	
protected void ibtnDelete_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e)
{
	if (e.CommandName == "Delete")
	{
		String lnkName = e.CommandArgument.ToString();

		File.Delete(Path.Combine(GetFolderPath(), lnkName));
		BindGrid();
	}
}

Det är inte gridviewn som orsakar ditt command i det här läget. Tror du måste ha det som en boundcolumn för att det ska registreras. Du får helt enkelt lägga till OnCommand till din imagebutton istället.

Medlem sedan sep. 2005833 inlägg
#3

tack, fungerade kanon :bire

255 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)