webForumDet fria alternativet

problem med OnRowCommand i GridView

2 svar · 287 visningar · startad av Vinnaren

VinnarenMedlem sedan sep. 2005833 inlägg
#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

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

VinnarenMedlem sedan sep. 2005833 inlägg
#3

tack, fungerade kanon :bire

132 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)