按钮无法访问文本框

时间:2015-04-16 18:09:53

标签: c# asp.net

我的.aspx:

<asp:LoginView runat="server">
    <RoleGroups>
        <asp:RoleGroup Roles="admin">
            <ContentTemplate>
                <asp:TextBox ID="TextBox" runat="server"></asp:TextBox>
                <asp:Button ID="Button" runat="server" Text="Submit" OnClick="Button_Click" />
            </ContentTemplate>
        </asp:RoleGroup>
    </RoleGroups>
</asp:LoginView>

我的代码隐藏

public partial class WebForm3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button_Click(object sender, EventArgs e)
    {

        string Mystring = String.Format("{0}", /*I want to put Textbox.text here*/ );

    }
}

问题是我在当前上下文中没有定义“文本框”。我摆弄了一下,发现删除loginview会恢复我想要的功能。那么为什么loginview会破坏我在同一视图中引用控件的能力?

2 个答案:

答案 0 :(得分:2)

C#区分大小写。而不是名称文本框(b是小写)使用TextBox。另外,我建议您将控件的ID更改为更有意义的内容。不要将TextBox的ID设置为“TextBox”

除了您的评论之外,您似乎还在LoginView中使用了TextBox。我可以访问此控件的唯一方法是

Control container = new Control();
LoginView1.RoleGroups[0].ContentTemplate.InstantiateIn(container);
foreach (Control control in container.Controls)
{
    if (control.ID == "txtName")
    {
        //Phew. Got your control
    }
}

注意:我已将LoginView ID设置为LoginView1,将TextBox ID设置为txtName

答案 1 :(得分:1)

试试this.TextBox!那应该解决Case Sensitivity的事情!另外......糟糕的变量命名...根据经验,不要将变量命名为类的名称......