前台: <asp:Panel ID="pnl1" runat="server" Visible="false">
111111111111
</asp:Panel>
<asp:Panel ID="pnl2" runat="server" Visible="false">
2222222222222
</asp:Panel>后台: protected void Page_Load(object sender, EventArgs e)
{
setcontent();
}
private void setcontent()
{
String d = Request.QueryString["id"] == null ? "1" : Request.QueryString["id"]; //这里d确定已经取到值不是这里的问题
((Panel)this.Page.FindControl("pnl" + d)).Visible = true; //这一句报 未将对象引用设置到对象的实例
}
谢谢!!!
111111111111
</asp:Panel>
<asp:Panel ID="pnl2" runat="server" Visible="false">
2222222222222
</asp:Panel>后台: protected void Page_Load(object sender, EventArgs e)
{
setcontent();
}
private void setcontent()
{
String d = Request.QueryString["id"] == null ? "1" : Request.QueryString["id"]; //这里d确定已经取到值不是这里的问题
((Panel)this.Page.FindControl("pnl" + d)).Visible = true; //这一句报 未将对象引用设置到对象的实例
}
谢谢!!!
生成能成功????
((Panel)this.Page.FindControl("pnl" + d)) 就变成了((Panel)this.Page.FindControl("pnl3" ))
你根本有没 pnl3 这个ID 当然就报错了
private void setcontent()
{
String d = Request.QueryString["id"] == null ? "1" : Request.QueryString["id"]; //这里d确定已经取到值不是这里的问题\
d = "2";
((Panel)this.Page.FindControl("pnl" + d)).Visible = true; //这一句报 未将对象引用设置到对象的实例
}
这样是没问题的
这个能行吗?我在我机子上能行
调试看panel的Id
String d = Request.QueryString["id"] == null ? "1" : "2";
如果不是2,肯定要报错
id有多少个,就要有多少个Panel
{
String d = Request.QueryString["id"] == null ? "1" : Request.QueryString["id"];
Panel p=this.FindControl("pnl"+d) as Panel;
if(p!=null)
p.Visible = true;
}
不知道为什么 p一直==null 。