01. august 2006 - 17:44
Der er
2 kommentarer og
1 løsning
"Indbyggede" værdier til CommandName på ImageButtons
Hej eksperter.
Jeg har et gridview:
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="Id"
DataSourceID="ObjectDataSource1" AlternatingRowStyle-BackColor="Beige" Width="100%" OnRowDeleting="GridView1_RowDeleting" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="Gallerinavn">
<ItemTemplate>
<table width="100%">
<tr>
<td style="width:98%;"><asp:Literal ID="LiteralName" runat="server" Text='<%# Eval("Name") %>'></asp:Literal></td>
<td align="right" style="width:20px"><asp:ImageButton ImageAlign="Middle" ID="EditButton" ImageUrl="~/Images/Edit.gif" runat="server" CommandName="Select" CommandArgument='<%# Eval("Id") %>' /></td>
<td align="right" style="width:20px"><asp:ImageButton ImageAlign="Middle" ID="DeleteButton" ImageUrl="~/Images/Delete.gif" runat="server" CommandName="Delete" OnClientClick="if (confirm('Er du sikker på du vil slette dette Galleri. Dette sletter også alle billeder under galleriet?') == false) return false;" /></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Som det kan ses har jeg ImageButtons. På den sidste har jeg sat CommandName="Delete" og så virker det som om den automatisk sletter den række? Jeg troede CommandName var en variabel man kunne bruge for at at fange hvilken commando der blev kaldt(I codebeside):
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName == "Select")
{
int catId = int.Parse(e.CommandArgument.ToString());
DetailsView1.DataBind();
}
}
Hvordan kan det være at den kan slette en række når man bare skriver Delete i CommandName ?? er der nogle indbyggede værdier
?
01. august 2006 - 18:07
#1
jeps - der er en hel stak:
du kan se dem i implementeringen af handleevent:
private bool HandleEvent(EventArgs e, bool causesValidation, string validationGroup)
{
bool flag1 = false;
if (causesValidation)
{
this.Page.Validate(validationGroup);
}
GridViewCommandEventArgs args1 = e as GridViewCommandEventArgs;
if (args1 != null)
{
this.OnRowCommand(args1);
flag1 = true;
string text1 = args1.CommandName;
if (StringUtil.EqualsIgnoreCase(text1, "Select"))
{
this.HandleSelect(this.GetRowIndex(args1.Row, (string) args1.CommandArgument));
return flag1;
}
if (StringUtil.EqualsIgnoreCase(text1, "Page"))
{
string text2 = (string) args1.CommandArgument;
int num1 = this.PageIndex;
if (StringUtil.EqualsIgnoreCase(text2, "Next"))
{
num1++;
}
else if (StringUtil.EqualsIgnoreCase(text2, "Prev"))
{
num1--;
}
else if (StringUtil.EqualsIgnoreCase(text2, "First"))
{
num1 = 0;
}
else if (StringUtil.EqualsIgnoreCase(text2, "Last"))
{
if (base.IsViewStateEnabled)
{
num1 = this.PageCount - 1;
}
else
{
num1 = 0x7fffffff;
}
}
else
{
num1 = Convert.ToInt32(text2, CultureInfo.InvariantCulture) - 1;
}
this.HandlePage(num1);
return flag1;
}
if (StringUtil.EqualsIgnoreCase(text1, "Sort"))
{
this.HandleSort((string) args1.CommandArgument);
return flag1;
}
if (StringUtil.EqualsIgnoreCase(text1, "Edit"))
{
this.HandleEdit(this.GetRowIndex(args1.Row, (string) args1.CommandArgument));
return flag1;
}
if (StringUtil.EqualsIgnoreCase(text1, "Update"))
{
this.HandleUpdate(args1.Row, this.GetRowIndex(args1.Row, (string) args1.CommandArgument), causesValidation);
return flag1;
}
if (StringUtil.EqualsIgnoreCase(text1, "Cancel"))
{
this.HandleCancel(this.GetRowIndex(args1.Row, (string) args1.CommandArgument));
return flag1;
}
if (StringUtil.EqualsIgnoreCase(text1, "Delete"))
{
this.HandleDelete(args1.Row, this.GetRowIndex(args1.Row, (string) args1.CommandArgument));
}
}
return flag1;
}
Mvh