2017-09-07 41 views
0

私のフォーマットで2つのボタンがあり、編集と削除が可能なデータグリッドを使用していますが、それらのイベントは発生していません。どこでコードが間違っているのですか?私はvb.netで同じコードを実行しているが、C#で変換した後は動作しません。 Plzヘルプ。datagrid_itemcommandイベントが起動しない

vb.netからc#にコードを変換する際に他に変更が必要なことはありますか? ありがとうございます!あなたのaspxファイルで

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

エラーは何ですか?ご質問ください。 –

+0

これは主な問題です。エラーは表示されません。編集ボタンをクリックするか、または削除すると同じページが更新され、そのボタンのイベントは発生しません。 –

+0

ヘイスはデブリングを試みましたか?グリッドボタンでポストバックを有効にしていますか? –

答えて

0

、あなたはどこにも、あなたが解雇するイベントを期待している「dgjob_ItemCommand」メソッドを呼び出すことはありません。

グリッドのOnSelectedIndexChangedイベントで "dgjob_ItemCommand"を呼び出す必要があります。

<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> 

これが役立ちます。

+0

いいえ、私はすでにこれを試してみました。 –

関連する問題