首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FindControl()找不到控件

FindControl()找不到控件
EN

Stack Overflow用户
提问于 2012-05-04 07:34:43
回答 1查看 1.7K关注 0票数 1

我有一个网站,是动态创建一个列表框内的每个项目的HiddenFields。

代码语言:javascript
复制
foreach (Checklist c in check)
{
    lbxCheckListLevel3.Items.Add(c.Name);
    HiddenField hf = new HiddenField();
    hf.ID = c.Name;
    hf.Value = c.Status + ":" + c.ResponseLabels + ":" + c.Prompt + ":" + c.Notes + ":" + c.ResponseValues;
    prompt.Controls.Add(hf);
}

HiddenField的值在Javascript中被更改

然后,当单击保存按钮时,OnClick函数运行以遍历所有HiddenFields并读取值。

代码语言:javascript
复制
for(int i = 0; lbxCheckListLevel3.Items.Count > i; i++)
{
   //Update the main checklist with the new information                
   HiddenField hidden = (HiddenField)FindControl(lbxCheckListLevel3.Items[i].Text);
   int index = check.FindIndex(delegate(Checklist c) { return c.Name == lbxCheckListLevel3.Items[i].Text; });
   if (check[index].Status != int.Parse(hidden.Value.Split(':')[0]) || 
      check[index].Notes != hidden.Value.Split(':')[3] ||
      check[index].ResponseValues != hidden.Value.Split(':')[4]) 
   {
      check[index].Status = int.Parse(hidden.Value.Split(':')[0]);
      check[index].Notes = hidden.Value.Split(':')[3];
      check[index].ResponseValues = hidden.Value.Split(':')[4];
      check[index].Changed = true;
   }
}

我的问题是FindControl行返回NULL。我已经在IE9中调出了开发人员工具,并确保它存在并且具有正确的ID。

如果您需要更多的信息,请提出,我将尽我所能。

编辑

下面这一行是错误的,我相信是因为破折号。即使它显示在字段的ID中

代码语言:javascript
复制
Environmental Health – Does the application involve any of the following:

Javascript仍然能够找到控件并更改值。

我已经找到了另一个有破折号的,而且那个正在被正确地找到。似乎只有这一行...

EN

回答 1

Stack Overflow用户

发布于 2012-05-04 08:23:01

不仅其他人的建议是有效的,而且你应该确保你的控件是在Page_InitPage_Load上重新创建的,还要考虑到你正在将你的控件添加到:prompt.Controls中,所以要确保你在正确的容器中搜索,例如,尝试像这样搜索:

代码语言:javascript
复制
HiddenField hidden = (HiddenField)prompt.FindControl(...);

只有这样,您才能确保在与之前添加HiddenField相同的容器中进行搜索。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10440799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档