2017-09-07 2 views
0

J'utilise une grille de données dans mon format qui a 2 boutons, éditer et supprimer mais l'événement pour ceux-ci ne se déclenche pas. Où vais-je mal dans le code. J'ai couru le même code dans vb.net mais après la conversion en C#, ça ne marche pas. Plz aide.L'événement datagrid_itemcommand ne se déclenche pas

Y a-t-il d'autres changements que je dois faire lors de la conversion du code de vb.net en C# ?? Merci d'avance!

private void dgjob_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) 
{ 
    try 
    { 
     switch (e.CommandName) 
     { 
      case "edit": 

       try 
       { 

        qry = "select ROLE from AV_USER_DETAILS where USER_ID='" + Session["user_name"] + "'"; 
        cmd.Connection = con; 
        cmd.CommandText = qry; 
        con.Open(); 
        if (Information.IsDBNull(cmd.ExecuteScalar())) 
        { 
         av_class.alert("User Not Permitted ", this); 
         con.Close(); 
         return; 

        } 
        string st = cmd.ExecuteScalar().ToString(); 
        if (!(st == "hod") & !(st == "Media_Planner")) 
        { 
         av_class.alert("User Not Permitted ", this); 
         con.Close(); 
         return; 


        } 
        con.Close(); 
        if (st == "hod") 
        { 
         goto mygo; 
        } 
        else 
        { 
         if (st == "Media_Planner") 
         { 
          goto mygo; 
         } 
         else 
         { 
          av_class.alert("User not Permitted", this); 
          return; 
         } 

        } 
       } 
       catch (Exception ex) 
       { 
        av_class.alert("Error .", this); 
       } 
      mygo: 
       ViewState["job_code"] = bll.RemoveSpecialChars(((Label)e.Item.FindControl("lbljobcode")).Text.Trim()); 


       //4 tables changed av_creative_for_agency,av_datatable_one_for_ro,av_cmp_prd,av_datatable_two_for_ro used only once' 
       DataTable dat = new DataTable(); 
       DAL o = new DAL(); 
       dat = o.GetDataForGrid("select top 1 job_code from av_creative_for_agency where job_code='" + ViewState["job_code"] + "'"); 
       if (dat.Rows.Count > 0) 
       { 
        av_class.alert("Ro's are Created for this !So can't be Edited", this); 
        return; 
       } 


       if (chk_job(ViewState["job_code"].ToString()) == false) 
       { 
        //alert("This Job already confirmed, so cannot be edited!", Me) 
        //Exit Sub 
        tb_campaign.Enabled = false; 
       } 

       retrive_from_DB(bll.RemoveSpecialChars(ViewState["job_code"].ToString())); 
       tabjob.Visible = true; 
       break; 
      Case "delete" 
       ViewState("job_code") = bll.RemoveSpecialChars(CType(e.Item.FindControl("lbljobcode"), Label).Text.Trim) 
       If chk_job(ViewState("job_code")) = False Then 
        alert("This Job already confirmed, so cannot be deleted!", Me) 
        Exit Sub 
       End If 
       If del_draft(ViewState("job_code")) = False Then 
        alert("Error in processing!", Me) 
        Exit Sub 
       End If 
       tabjob.Visible = False 
       alert("Draft deleted successfully!", Me) 
     } 

    } 
    catch (Exception ex) 
    { 
    } 
} 





ASPX CODING OF THE DATAGRID 

<asp:datagrid id="dgjob" runat="server" CssClass="davpdgdatagrid" 
        PageSize="100" AutoGenerateColumns="False" ShowFooter="True" 
        BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" 
        BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Horizontal" 
        HorizontalAlign="Center"> 
         <AlternatingItemStyle CssClass="davpdgalt"></AlternatingItemStyle> 
         <ItemStyle CssClass="davpdgitem" HorizontalAlign="Center"></ItemStyle> 
         <FooterStyle BackColor="#CCCC99" ForeColor="Black" /> 
         <HeaderStyle Wrap="False" HorizontalAlign="Center" CssClass="davpdgheader" 
          BackColor="#333333" Font-Bold="True" ForeColor="White"></HeaderStyle> 
         <Columns> 
          <asp:TemplateColumn> 
           <ItemTemplate> 
            <asp:Button id="btnedit" runat="server" CssClass="btn btn-primary" Text="Edit" CausesValidation="False" 
             CommandName="edit"></asp:Button> 
           </ItemTemplate> 
          </asp:TemplateColumn> 
          <asp:TemplateColumn> 
           <ItemTemplate> 
            <asp:Button id="btndelete" runat="server" CssClass="btn btn-primary" Text="Delete" CausesValidation="False" 
             CommandName="delete"></asp:Button> 
           </ItemTemplate> 
          </asp:TemplateColumn> 
          <asp:TemplateColumn HeaderText="Job Code"> 
           <ItemTemplate> 
            <asp:Label id="lbljobcode" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.job_code") %>'> 
            </asp:Label> 
           </ItemTemplate> 
           <EditItemTemplate> 
            <asp:TextBox id="TextBox2" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.job_code") %>'> 
            </asp:TextBox> 
           </EditItemTemplate> 
          </asp:TemplateColumn> 
          <asp:BoundColumn DataField="job_name" HeaderText="Job Name"></asp:BoundColumn> 
          <asp:BoundColumn DataField="job_date" HeaderText="Job Date"></asp:BoundColumn> 
         </Columns> 
         <PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" Mode="NumericPages" /> 
         <SelectedItemStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" /> 
        </asp:datagrid> 
+0

Quelle est l'erreur? S'il vous plaît poser votre question en détail. –

+0

C'est le problème principal, il ne montre aucune erreur. en cliquant sur le bouton modifier ou supprimer, il actualise la même page, l'événement pour ce bouton ne se déclenche pas. –

+0

Hace vous avez essayé de débobiner? La publication est-elle activée pour le bouton de grille? –

Répondre

0

Dans votre fichier ASPX, vous appelez nulle part méthode « dgjob_ItemCommand » où vous événement attendez à faire virer.

vous devez appeler "dgjob_ItemCommand" sur l'événement OnSelectedIndexChanged de la grille.

<asp:datagrid id="dgjob" runat="server" CssClass="davpdgdatagrid" 
        PageSize="100" AutoGenerateColumns="False" ShowFooter="True" 
        BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" 
        BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Horizontal" 
        HorizontalAlign="Center" OnSelectedIndexChanged="dgjob_ItemCommand"> 
         <AlternatingItemStyle CssClass="davpdgalt"></AlternatingItemStyle> 

J'espère que cela aide.

+0

Non, j'ai déjà essayé cela. –