帮帮我啊,真是见鬼了!有关获取用户控件内某控件的值的问题!!!

i169net1 2006-05-13 12:39:39
有一个a.aspx窗体调用xfp.ascx用户控件(此用户控件内有一个ID为shuliang的文本框),我只是想在a.aspx中得到此文本框shuliang的值......

在a.aspx.cs中动态载入控件二次:
private void Page_Load(object sender, System.EventArgs e)
{
if (!(Page.IsPostBack))
{
for (int i=0;i<2;i++)
{
xfp myfp = (xfp)LoadControl("xfp.ascx");
myfp.ID = "myfp"+i.ToString(); //指定了用户控件的ID:myfp0、myfp1
myfp.Myname = "测试"+i.ToString(); //Myname为用户控件的一个属性
Panel1.Controls.Add(myfp); //加到Panel1容器中...
}
}
}

在a.aspx.cs某按钮的Click事件中获得shuliang文本框的值:
xfp a=(xfp)this.Page.FindControl("myfp0");
TextBox b=(TextBox)a.FindControl("shuliang");
string mysl=b.Text;

结果错误:未将对象引用设置到对象的实例。

换成:
xfp a=(xfp)this.Page.FindControl("myfp0");
string mysl=a.ClientID;
还是同样错误,说明根本没有 FindControl 到 "myfp0" ?

再换成:
Panel a=(Panel)this.Page.FindControl("Panel1");
string mysl=a.ClientID;
就不出错.........但这个结果是没用的.............................

--------------------------------------------------------------------------------
xfp a=(xfp)this.Page.FindControl("myfp0");
怎么会找不到控件呢? 我昨天调试的时候都没问题的啊...今天又没改动过什么主要部分 ...

真是奇怪...
急死了...................

帮帮我啊~~~~~~~~~~~~~~


...全文
83 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
i169net1 2006-05-13
HTML中没有独立的用户控件ID,只是些用户控件内的WEB控件的转型...

比如shuliang文本框变成:
<input name="myfp0:shuliang" type="text" id="myfp0_shuliang" style="width:53px;" />

现在是 xfp a=(xfp)this.Page.FindControl("myfp0"); 语句找不到"myfp0" 啊...

并且昨天用此方法调试的时候都没问题,一切正常的,见:
http://community.csdn.net/Expert/topic/4744/4744596.xml?temp=.2621118

回复
webwait 2006-05-13
在ie里运行,查看源文件,看看你控件id变成什么样了,呵呵
回复
i169net1 2006-05-13
晕...

找到原因了...............呵呵~

回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2006-05-13 12:39
社区公告
暂无公告