컨트롤을 GridView에 동적으로 추가해야하므로 PlaceHolder를 추가했지만 오류가 발생합니다. 내의 GridView에 대한 마크 업을 여기에
동적으로 gridview에 컨트롤 추가
Object reference not set to an instance of an object.
것 : 자리 표시 자에 컨트롤을 추가하는 동안
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
PlaceHolder plachldr = e.Row.FindControl("PlaceHolder2") as PlaceHolder;
Button btn = new Button() { ID = "btnShhow", Text = "Show" };
plachldr.Controls.Add(btn);
PlaceHolder placeholder = e.Row.FindControl("PlaceHolder1") as PlaceHolder;
TextBox txt1 = new TextBox();
placeholder.Controls.Add(txt1);
}
, 나에게 다음과 같은 오류를주고있다
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanging="GridView1_SelectedIndexChanging" onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Salary" HeaderText="Salary" />
<asp:TemplateField>
<ItemTemplate>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
GridView 내에서 가질 수있는 모든 행 유형에 PlaceHolder2가 없으면 행의 유형을 확인해야합니다. 그래서 이런 식으로 : if (e.Row.RowType == DataControlRowType.DataRow) // 여기에 자리 표시 자 코드 –
@Pawan Bhise - 해결 된 문제 –