Jag håller på med en filhanterare och allt fungerar utan när jag ska radera. Jaghar följande kod: Jag gissar på att du gör en grdDirs.DataBind() eller liknande i PageLoad, detta resulterar i att alla komponenter i grid viewn skapas på nytt och därmed förloras postback informationen. Radera från gridview
<code>
<asp:GridView ID="grdDirs" GridLines="Horizontal" BorderStyle="None" runat="server"
AutoGenerateColumns="false" OnSelectedIndexChanged="grdDirs_SelectedIndexChanges" DataKeyNames="FullName">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<img src='Graphic/<%# getFolderStatus(Container.DataItem) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField DataTextField="Name" CommandName="Select" HeaderText="Namn" />
<asp:BoundField DataField="CreationTime" HeaderText="Skapad" />
<asp:BoundField DataField="LastWriteTime" HeaderText="Senast ändrad" />
<asp:TemplateField HeaderText="Radera">
<ItemTemplate>
<asp:CheckBox ID="chkDelete" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<asp:Button ID="btnDelete" runat="server" Text="Radera valda objekt" OnClick="btnDelete_Click" />
<br /><br />
//.cs
protected void btnDelete_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in grdDirs.Rows)
{
CheckBox chkBox = (CheckBox)row.FindControl("chkDelete");
if (chkBox.Checked)
{
//DirectoryInfo dirInfo = new DirectoryInfo(ViewState["myPath"].ToString());
//string fileName = grdDirs.DataKeys[row.RowIndex].Value.ToString();
lblShowDir.Text += "Joho";
//dirInfo = dirInfo;
//dirInfo.Delete();
}
else
lblShowDir.Text += "Nähe";
}
}
</code>
Jag får bara ut "Nähe" i min label. Ändrar jag i checkboxen till Checked = true så skriver den ut "Joho" när jag klickar på knappen. Den skriver alltså inte ut rätt när jag klickar i checkboxen. Vad har jag gjort för fel? Sv: Radera från gridview
Testa detta:
if (!IsPostBack)
{
///....
grdDirs.DataBind();
}