首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们可以动态引用元素(服务器端)吗?

我们可以动态引用元素(服务器端)吗?
EN

Stack Overflow用户
提问于 2015-04-07 12:46:41
回答 3查看 93关注 0票数 6

假设我有ID为"Input1“、"Input2”和"Input3“的元素。

是否有一种方法可以循环遍历它们,而不是必须编写:

代码语言:javascript
运行
复制
Input1.Value = 1;
Input2.Value = 1;
Input3.Value = 1;

在jquery中,您只需参考$(‘# just’+ i )之类的元素并通过i循环,类似的内容在后面的ASP代码中非常有用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-07 12:53:06

编辑:Duh,我再次搜索页面上的所有"x“控件,并提供了以下源代码:

代码语言:javascript
运行
复制
foreach(Control c in Page.Controls)
{
    if (c is TextBox)
    {
        // Do whatever you want to do with your textbox.
    }
}

有点..。根据您的示例命名方案,您可以执行如下操作:

代码语言:javascript
运行
复制
    private void Button1_Click(object sender, EventArgs MyEventArgs)
    {
          string controlName = TextBox

          for(int i=1;i<4;i++)
          {
           // Find control on page.
           Control myControl1 = FindControl(controlName+i);
           if(myControl1!=null)
           {
              // Get control's parent.
              Control myControl2 = myControl1.Parent;
              Response.Write("Parent of the text box is : " +  myControl2.ID);
          }
          else
          {
             Response.Write("Control not found");
          }
         }

    }

这将让您循环通过数字命名的控件,但否则它有点笨重。

票数 2
EN

Stack Overflow用户

发布于 2015-04-07 12:52:56

如果您知道父容器,就可以循环使用它的.Controls()属性。如果您从page级别开始并递归地工作,您最终可以到达页面上的所有控件。

有关更多细节,请参见this问题的答案。

票数 1
EN

Stack Overflow用户

发布于 2015-04-07 13:52:43

我喜欢保持强类型,所以我把它们存储在一个列表中。这使得代码对重构更有弹性,并且不需要强制转换。把你的所有控件放到列表中需要稍微多一点的前期工作,但对我来说,这往往是值得的。

我不知道您的控件是哪种类型,所以我要假装它们是Input类型的。

代码语言:javascript
运行
复制
var InputControls = new List<Input>(){Input1, Input2, Input3};
foreach(var input in InputControls)
{
    input.Value = 1;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29491989

复制
相关文章

相似问题

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