发生错误 - “无法将类型为'System.Web.UI.WebControls.ContentPlaceHolder'的对象强制转换为'System.Web.UI.WebControls.GridViewRow'。” [英] Error occured- "Unable to cast object of type 'System.Web.UI.WebControls.ContentPlaceHolder' to type 'System.Web.UI.WebControls.GridViewRow'."

查看:113
本文介绍了发生错误 - “无法将类型为'System.Web.UI.WebControls.ContentPlaceHolder'的对象强制转换为'System.Web.UI.WebControls.GridViewRow'。”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<div>
        <asp:HiddenField ID="hdnfCreatedBy" runat="server" />
        <asp:ImageButton ID="imgBtn" ImageUrl="~/Images/edit1.jpg" runat="server" Width="25" Height="25" onclick="imgBtn_Click" />
        <asp:GridView ID="gvDetails" runat="server" AutoGenerateColumns="false" Width="600px">
            <columns>
                <asp:TemplateField HeaderText="Sr. No.">
                    <itemtemplate>
                        <%#Container.DataItemIndex+1 %>
                    </itemtemplate>
                
                <asp:TemplateField HeaderText="ID">
                    <itemtemplate>
                        <asp:Label ID="lblID" runat="server" Text='<%#Eval("ID") %>'>
                    </itemtemplate>
                    <HeaderStyle CssClass="hideCol" />
                    <itemstyle cssclass="hideCol" />
                
                <asp:TemplateField HeaderText="Name">
                    <itemtemplate>
                        <asp:Label ID="lblName" runat="server" Text='<%#Eval("Name") %>'>
                    </itemtemplate>
                
                <asp:TemplateField HeaderText="Date Of Birth">
                    <itemtemplate>
                        <asp:Label ID="lblDOB" runat="server" Text='<%#Eval("DOB") %>'>
                    </itemtemplate>
                
                <asp:TemplateField HeaderText="Age">
                    <itemtemplate>
                        <asp:Label ID="lblAge" runat="server" Text='<%#Eval("Age") %>'>
                    </itemtemplate>
                
                <asp:TemplateField HeaderText="Gender">
                    <itemtemplate>
                        <asp:Label ID="lblGender" runat="server" Text='<%#Eval("Gender") %>'>
                    </itemtemplate>
                
                <asp:TemplateField HeaderText="View">
                    <itemtemplate>
                        <a href="viewDetails.aspx?ID=<%#Eval(" id=") %>">
                            <img src="../../images/view1.jpg" alt="view" title="View" style="border: none" width="35px"

                                height="25px" />
                        </a>
                        <asp:HyperLink ID="hplnkBtnViewDetails" runat="server" Target="_parent" NavigateUrl='<%#"viewDetails.aspx?ID=" + Eval("ID") %>'>
                                            <%--<asp:HyperLink ID="HyperLink1" runat="server" Text="View" Target="_blank" NavigateUrl='<%# "AllotmentGroupAView.aspx?App_Id=" + Eval("ApplicationId")%>'>
                                            --%>
                                            <img src="../../images/view1.jpg" alt="view" title="View" style="border: none" width="35px"

                                                height="25px" />
                        
                        <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="hplnkBtnViewDetails"

                            PopupControlID="pnlViewDetails" DropShadow="true" OkControlID="btnUpdate">
                        
                    </itemtemplate>
                
                <asp:TemplateField HeaderText="Update">
                    <itemtemplate>
                        <asp:ImageButton ID="imgBtnUpdate" runat="server" ImageUrl="~/Images/edit1.jpg" Width="30px"

                            Height="25px" />
                    </itemtemplate>
                
            </columns>
            <HeaderStyle CssClass="gvHeader" />
            <rowstyle cssclass="gvRow" />
            <alternatingrowstyle cssclass="gvAltRow" />
        
        <asp:Label ID="lblresult" runat="server" />
        <asp:Button ID="btnShowPopup" runat="server" Style="display: none" />
        <asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnShowPopup"

            PopupControlID="pnlpopup" CancelControlID="btnCancel">
        
        <asp:Panel ID="pnlpopup" runat="server" BackColor="White" Height="269px" Width="400px"

            Style="display: none">
            <table width="100%" style="border: Solid 3px #D55500; width: 100%; height: 100%">
                cellpadding="0" cellspacing="0">
                <tr style="background-color: #D55500">
                    <td colspan="2" style="height: 10%; color: White; font-weight: bold; font-size: larger">
                        align="center">
                        User Details
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        ID :
                    </td>
                    <td>
                        <asp:Label ID="lblID" runat="server">
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        Name :
                    </td>
                    <td>
                        <asp:TextBox ID="txtName" runat="server">
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        BOB :
                    </td>
                    <td>
                        <asp:TextBox ID="txtDOB" runat="server" />
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        Age :
                    </td>
                    <td>
                        <asp:TextBox ID="txtAge" runat="server" />
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        Gender :
                    </td>
                    <td>
                        <asp:DropdownList ID="ddlGender" runat="server" >
                        <asp:ListItem Value="0" Text="<<--  Select  Gender  -->>">
                        <asp:ListItem Value="1" Text="Female">
                        <asp:ListItem Value="2" Text="Male">
                        
                    </td>
                </tr>
                <tr>
                    <td>
                    </td>
                    <td>
                        <asp:Button ID="btnUpdate" CommandName="Update" runat="server" Text="Update" OnClick="btnUpdate_Click"/>
                        <asp:Button ID="btnCancel" runat="server" Text="Cancel" />
                    </td>
                </tr>
            </table>
        
    </div>




#region imgBtn_Click
protected void imgBtn_Click(object sender, ImageClickEventArgs e)
{
   try
   {
      ImageButton btnDetails = sender as ImageButton;
      GridViewRow gvRow = (GridViewRow)btnDetails.NamingContainer;
      int sn = Convert.ToInt32(((TextBox)gvDetails.Rows[gvRow.RowIndex].Cells[0].Controls[0]).Text);
      lblID.Text = gvDetails.DataKeys[gvRow.RowIndex].Value.ToString();
      txtName.Text = gvRow.Cells[1].Text;
      txtDOB.Text = gvRow.Cells[2].Text;
      txtAge.Text = gvRow.Cells[3].Text;
      ddlGender.SelectedItem.Text = gvRow.Cells[4].Text;
      this.ModalPopupExtender1.Show();
   }
   catch (Exception ex)
   {
      throw ex;
   }
}
#endregion

推荐答案

your imgBtn is not inside the GridView, when you call btnDetails.NamingContainer it will give ContentPlaceHolder object that is where your imgBtn placed in the page. you will get exception when you cast ContentPlaceHolder to GridViewRow



try with SelectedIndex like below to get the selected row.

your imgBtn is not inside the GridView, when you call btnDetails.NamingContainer it will give ContentPlaceHolder object that is where your imgBtn placed in the page. you will get exception when you cast ContentPlaceHolder to GridViewRow

try with SelectedIndex like below to get the selected row.
GridViewRow row = gvDetails.Rows[gvDetails.SelectedIndex];


这篇关于发生错误 - “无法将类型为'System.Web.UI.WebControls.ContentPlaceHolder'的对象强制转换为'System.Web.UI.WebControls.GridViewRow'。”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆