日期:2014-05-17  浏览次数:20372 次

求助大家一个有点纠结的问题哈 ~~
[align=center]首先是我写了一个动态生成控件的方法createCtrl(),
然后在保存按钮的服务器事件下会引用这个控件也就是findControl(),
于是我只能把createCtrl()这个方法写在回发(ispostback)事件外面 要不就找不到。
但是在page_load里面的某个方法也要通过findControl()的方法来引用这个方法。
把createCtrl()下在回发(ispostback)外面的话page_load里面的这个方法又找不到这些动态生成的控件了。。

求破 !![/align]


------解决方案--------------------
看不懂 可以详细点?
------解决方案--------------------
第一次加载页面时,先创建控件
------解决方案--------------------
可以使用 页面查找控件方式

Button 控件名= this.Page.FindControl("控件名") as Button;
------解决方案--------------------
方法1. 定义公共变量,动态创建控件后,赋值给公共变量
方法2. 给控件设置属性
------解决方案--------------------
定义一个控件的全局变量比如 GridView dg=new GridView();

createCtrl()方法既是返回GridView控件也是创建Gridview控件的函数

每需要用到它时都调用一遍即可。如
private GridView createCtrl()
{
if(dg==null)
{
dg=new GridView;
dg.....设置属性
}
return dg;
}
------解决方案--------------------
C# code

protected void Page_Load(object sender, EventArgs e)
{
            createCtrl();//createCtrl写在Page_Load的最上面,且只能放在if(!IsPosiBack)外面
            //在下面可以用findControl调用控件
            if (!IsPostBack)
            {

            }
}

------解决方案--------------------
ajax试试