【问题标题】:How to reference dynamic textboxes created at run time?如何引用在运行时创建的动态文本框?
【发布时间】:2011-08-14 07:05:11
【问题描述】:

我有一个引用 WCF 服务的 ASP 项目。完成了我需要的一半。

页面上的按钮调用来自 WCF 的函数,该函数返回对象列表(变量名)。返回时,vb 代码会动态地将文本框添加到页面上的面板中。像这样:

    For Each LetterVariables In LetterVarList
        tb = New TextBox
        lb = New Label
        lb.Text = LetterVariables._key & "  "
        tb.ID = LetterVariables._key
        pnlVars.Controls.Add(lb)
        pnlVars.Controls.Add(tb)
        Dim LineBreak As LiteralControl = New LiteralControl("<br />")
        pnlVars.Controls.Add(LineBreak)
    Next

现在的问题是,完成此操作后,用户将在这些 texbox 中输入一些值。当用户单击另一个按钮时,我(不知何故)需要引用这些 texboxes 来获取值。

我该怎么做?

谢谢, 杰森

【问题讨论】:

    标签: asp.net vb.net dynamic reference textbox


    【解决方案1】:

    您可以给 TextBox 一个 ID,您可以使用 FindControl 来检索它。

    tb.ID = "txt" + LetterVariables._key.ToString();
    

    然后当你想引用它时。

    TextBox txtBox = (TextBox)FindControl("txt" + someKey);
    

    类似的东西可能对你有用。

    【讨论】:

      【解决方案2】:

      不要忘记在用发布的值加载控件之前在回发时重新创建控件。

      【讨论】:

      • 覆盖 LoadViewState 并把上面的代码放进去。我不确定您是如何获得 LetterVarList 的,但如果您不能轻松地重新创建 LetterVarList,您可以将内容保留在 ViewState 中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多