Jag har följande kod: Det är ett id till inlägget "<asp:LinkButton ID="lbDelete" runat="server" När jag kör debugg så innehåller den rätt värde första gång Kan du skicka upp html-koden som den ser ut dels när det fungerar att klicka på en knapp, och dels när det inte fungerar att klicka?Radera fler gånger?
<code>
.aspx
<asp:LoginView ID="LoginView1" runat="server">
<RoleGroups>
<asp:RoleGroup Roles="guestBookUser">
<ContentTemplate>
<tr>
<td>
<asp:LinkButton ID="lbDelete" runat="server"
CommandArgument='<%#Eval("publicGbookEntryID")%>' CommandName="doDelete" Text="Radera" />
<asp:LinkButton ID="lbApprove" runat="server" CommandName="doApprove" Text="Godkänn" />
</td>
<td style="text-align:right;" colspan="2"><%#Eval("entryDate") %></td>
</tr>
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
.cs
protected void grdEntries_RowCommand(object sender, GridViewCommandEventArgs e)
{
int gBookID = int.Parse(Request.QueryString["id"].ToString());
if (e.CommandName == "doDelete")
{
int entryID = int.Parse(e.CommandArgument.ToString()); // HÄR BLIR DET FEL ANDRA GÅNGEN
PublicGbookEntryAccess.DeletePublicEntry(entryID, gBookID);
loadControls();
}
}
protected void loadControls()
{
grdEntries.DataSource = PublicGbookEntryAccess.GetEntries(int.Parse(Request.QueryString["id"].ToString()));
grdEntries.DataBind();
}
</code>
Första gången jag radera fungerar det, men inte när jag vill radera fler gånger. Jagfår felet "Input string was not in a correct format"Sv:Radera fler gånger?
CommandArgument='<%#Eval("publicGbookEntryID")%>' CommandName="doDelete" Text="Radera" />
"Sv:Radera fler gånger?
e.CommandArgument "8" object {string}
Andra gången är den tom
e.CommandArgument "" object {string}
Det är ju lite märkligt eftersom jag binder kontrollen igen efter jag har raderat?
------------------EDIT-------------------------
Kan det ha betydelse att det ligger i en iframe? Glömde skriva det. Jagskickar upp mer kod alldesles strax.
Mer kod
<code>
protected void Page_PreRender(object sender, EventArgs e)
{
showGBookData();
}
protected void Page_Load(object sender, EventArgs e)
{
btnDelete.Enabled = false;
if (!IsPostBack)
loadControls();
}
protected void showGBookData()
{
string user = Request.QueryString["user"];
int gBookID = int.Parse(Request.QueryString["id"].ToString());
PublicGuestBook gBook = new PublicGuestBook();
gBook = PublicGbookAccess.GetPublicGbook(user, gBookID);
BackColor = gBook.BackColor;
TableBack = gBook.TableBackColor;
BorderColor = gBook.BorderColor;
BorderThick = gBook.BorderThickness;
lblTitle.Text = gBook.PublicGuestBookName;
lblIntro.Text = gBook.IntroText;
lblCount.Text = "Det finns: " + gBook.numberOfEntries.ToString() + " inlägg i gästboken.";
ddlBorderThick.SelectedValue = BorderThick.ToString();
txtGbookName.Text = gBook.PublicGuestBookName;
txtIntro.Text = gBook.IntroText;
}
protected void loadControls()
{
grdEntries.DataSource = PublicGbookEntryAccess.GetEntries(int.Parse(Request.QueryString["id"].ToString()));
grdEntries.DataBind();
}
protected void grdEntries_RowCommand(object sender, GridViewCommandEventArgs e)
{
int gBookID = int.Parse(Request.QueryString["id"].ToString());
if (e.CommandName == "doDelete")
{
int entryID = int.Parse(e.CommandArgument.ToString());
PublicGbookEntryAccess.DeletePublicEntry(entryID, gBookID);
loadControls();
}
if (e.CommandName == "doApprove")
{
int entryID = int.Parse(e.CommandArgument.ToString());
PublicGbookEntryAccess.ApproveEntry(entryID);
loadControls();
}
}
<iframe src="PublicGuestBook/remoteGuestBook.aspx?user=myTest&id=11" frameborder="0" scrolling="auto"
width="520" height="600"></iframe>
</code>Sv: Radera fler gånger?