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