首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SelectedIndex添加控件

SelectedIndex添加控件
EN

Stack Overflow用户
提问于 2011-12-03 09:30:26
回答 1查看 59关注 0票数 0

根据下拉列表中的"Other“选项,我想将标签和文本框添加到<p>标记。我已经在<p>标签中添加了runat=server

代码语言:javascript
复制
    Protected Sub deptDdl_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles deptDdl.SelectedIndexChanged
        'If the user chooses other for the department type add
        'a label and textbox to allow them to fill in a department not listed

        If deptDdl.SelectedValue.ToString = "Other" Then
            Dim deptLbl As Label = New Label
            deptLbl.Text = "Enter the Department Name"
            Dim deptTb As TextBox = New TextBox
            deptTb.MaxLength = 20

            Page.FindControl("m_ContentPlaceHolder1_deptPtag").Controls.AddAt(2, deptLbl)
            Page.FindControl("m_ContentPlaceHolder1_deptPtag").Controls.AddAt(3, deptTb)
        End If
    End Sub

我一直收到一个未处理的异常,声明object reference未设置为对象的实例。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-03 09:52:05

如果你的<p>-tag是runat=server,你应该能够在-file后面的代码中直接引用它。给它一个ID deptPtag,然后在signer.vb文件中自动生成:

代码语言:javascript
复制
Protected WithEvents deptPtag As Global.System.Web.UI.HtmlControls.HtmlGenericControl

但您还必须确保在每次回发时都会重新创建动态控件( Page_Load中的最新版本,重新加载ViewState的事件为时已晚)。否则你将无法读取deptTb.Text或处理它的TextChanged-event。每次回发的ID必须相同,才能正确加载ViewState

我在this question上的回答解释了你的NullReferenceException。这是FindControl在母版页内容页中的一种特殊行为。

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

https://stackoverflow.com/questions/8364770

复制
相关文章

相似问题

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