1

ドキュメントを承認しようとしましたが、承認ボタンをクリックするとエラーが表示されます

タイプ 'System.Web.UI.WebControls.Button' のオブジェクトをタイプ 'System.Web.UI.WebControls.LinkBut​​ton' にキャストできません。

グリッドビュー

<asp:GridView ID="GrdFileApprove" runat="server" AutoGenerateColumns="False" 
                onrowcommand="GrdFileApprove_RowCommand">
               <Columns>
                   <asp:TemplateField HeaderText="S no">
                       <ItemTemplate>
                           <%# Container.DataItemIndex+1 %>
                           <asp:HiddenField runat="server" ID="HdnFileID" Value='<%# 
                      Eval("DocID") %>' />
                       </ItemTemplate>
                   </asp:TemplateField>
                   <asp:BoundField DataField="DocID" HeaderText="DocumentID"  />
                   <asp:BoundField DataField="DocName" HeaderText="DocName"  />
                   <asp:BoundField DataField="Uploadfile" HeaderText="File Name" />
                   <asp:BoundField DataField="DocType" HeaderText="Document" />
                   <asp:BoundField DataField="DepType" HeaderText="Department" />
                   <asp:TemplateField HeaderText="S no">
                       <ItemTemplate>


                           <asp:Button runat="server" Id="BtnApprove"
                           CommandName="_Approve" 

                                CommandArgument='<%# Eval("DocID") %>' Text="Aprrove"
                             />

                           <asp:Button runat="server" Id="Button1" 
                         CommandName="_Reject" 
                                CommandArgument='<%# Eval("DocID") %>' Text="Reject" />
                       </ItemTemplate>
                   </asp:TemplateField>
                   <asp:ButtonField Text="Button" />
               </Columns>
           </asp:GridView>

</div>

コード

if (e.CommandName == "_Approve")
        {
            //using (SqlConnection con = DataAccess.GetConnected())
            using (SqlConnection con = new 
        SqlConnection(ConfigurationManager.ConnectionStrings

         ["mydms"].ConnectionString))
            {
                try
                {
                    int rowindex = Convert.ToInt32(e.CommandArgument);
                    GridViewRow row = (GridViewRow)
          ((Control)e.CommandSource).NamingContainer;
                    LinkButton Prove_Button = 
             (LinkButton)row.FindControl("BtnApprove");
                    SqlCommand cmd = new SqlCommand("spinsertapprove", con);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@UserID", UserID));
                    cmd.Parameters.Add(new SqlParameter("@DocID", DocID));
                    cmd.Parameters.Add(new SqlParameter("@ApproveType", "Approve"));
                    int result = cmd.ExecuteNonQuery();
                    if (result != 0)
                    {
                        GrdFileApprove.DataBind();
                    }
                }

                catch
                {
                    apfi.Text = "Not Approve";



                }
                finally
                {
                    con.Close();
                }
            }
        }


        else if (e.CommandName == "_Reject")
        {
            using (SqlConnection con = new 
             SqlConnection(ConfigurationManager.ConnectionStrings

            ["mydms"].ConnectionString))
            {
                try
                {
                    int rowindex = Convert.ToInt32(e.CommandArgument);
                    GridViewRow row = (GridViewRow)
              ((Control)e.CommandSource).NamingContainer;
                    LinkButton Prove_Button = (LinkButton)row.FindControl("Button1");
                    SqlCommand cmd = new SqlCommand("sprejectapprove", con);

                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@UserID",UserID));
                    cmd.Parameters.Add(new SqlParameter("@DocID", DocID));
                    cmd.Parameters.Add(new SqlParameter("@ApproveType", "Reject"));
                    int result = cmd.ExecuteNonQuery();
                    if (result != 0)
                    {
                        GrdFileApprove.DataBind();
                    }
                }

                catch 
                {
                    apfi.Text = "Rejct";
                }
                finally
                {
                    con.Close();
                }
            }
        }

承認ボタンをクリックすると、キャッチにエラーが表示されます

4

3 に答える 3