首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

FindControl() 不能用变量做参数? ~

2013-11-19 
FindControl() 不能用变量做参数? 在线等~~~~急。。。。请问,aspx页有固定5个Panel,如何在.cs页根据一个变量i

FindControl() 不能用变量做参数? 在线等~~~~急。。。。
请问,aspx页有固定5个Panel,如何在.cs页根据一个变量i进行Visible的显示?
如:
<asp:Panel ID="Panel1" runat="server" Visible="false">
</asp:Panel>
<asp:Panel ID="Panel2" runat="server" Visible="false">
</asp:Panel>
<asp:Panel ID="Panel3" runat="server" Visible="false">
</asp:Panel>
<asp:Panel ID="Panel4" runat="server" Visible="false">
</asp:Panel>
<asp:Panel ID="Panel5" runat="server" Visible="false">
</asp:Panel>

-------------------------------------------
.CS

for (int i = 1; i < numSum; i++)
{}
例如i=3,则Panel1~3的Visible = true;该怎么写?

我这样写的:
for (int i = 1; i < numSum; i++)
                {
                    string PanelID = "Panel" + i.ToString();
                    Panel PanelNow = (Panel)FindControl(PanelID);
                    PanelNow.Visible = true;
                }

但提示无实例化。断点显示,PanelID可以传入,但PanelNow的值为null.
请教该怎么写?
[解决办法]


--页面中form内
<form id="form1" runat="server">
    <div>
        <asp:Panel ID="Panel1" runat="server" Visible="true">a
        </asp:Panel>
        <asp:Panel ID="Panel2" runat="server" Visible="false">b
        </asp:Panel>
        <asp:Panel ID="Panel3" runat="server" Visible="false">c
        </asp:Panel>
        <asp:Panel ID="Panel4" runat="server" Visible="false">d
        </asp:Panel>
        <asp:Panel ID="Panel5" runat="server" Visible="false">e
        </asp:Panel> 
 
    </div>
    
    </form>

--cs

 protected void Page_Load(object sender, EventArgs e)
    {
        bindData();
    }
    protected void bindData()
    {
        int numSum = 5;

        Panel PanelNow = new Panel();

        for (int i = 1; i <= numSum; i++)
        {
            string PanelID = "Panel" + i.ToString();
            PanelNow = (Panel)Page.FindControl(PanelID);
            PanelNow.Visible = true;

        }
    }

[解决办法]
在page_load里面是肯定写不出来。Page_Load是加载事件和控件,东西都还没加载完你去获取什么控件啊?
去了解一下页面生命周期:http://www.cnblogs.com/kingboy2008/archive/2010/07/04/2055558.html

不建议在page_load里FindControl() 。
在外面写方法吧。

热点排行