Avatar billede _basil Nybegynder
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
?
Avatar billede snepnet Nybegynder
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
Avatar billede _basil Nybegynder
01. august 2006 - 18:22 #2
Mange tak.. Lige hvad jeg ledte efter.. Kunne nemlig ikke finde noget dokumentation på disse.. Smid et svar:)

Skulle du have linket til officiel dokumentation ville det være perfekt
Avatar billede snepnet Nybegynder
01. august 2006 - 20:24 #3
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester