ドキュメントを承認しようとしましたが、承認ボタンをクリックするとエラーが表示されます
タイプ 'System.Web.UI.WebControls.Button' のオブジェクトをタイプ 'System.Web.UI.WebControls.LinkButton' にキャストできません。
グリッドビュー
<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();
}
}
}
承認ボタンをクリックすると、キャッチにエラーが表示されます