Warum Kann ich nicht Verweisen auf eine TextBox ID, Wenn es in ein CreateUserWizard-Steuerelement?
Ich habe eine seltsame problem hier.
Innerhalb einer asp.net CreateUserWizard, ich habe einige Elemente, aber ich kann nicht scheinen, um Zugang zu Ihnen aus meinem code-behind.
Hier ist ein code-snippet:
Markup:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CreateUserWizard.ascx.cs" Inherits="Web.UserControls.CreateUserWizard" %>
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" OnCreatingUser="CreatingUser">
<WizardSteps>
<asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
<ContentTemplate>
<table border="0">
<tr>
<td>
<span class="requiredField"/>
<asp:Label ID="NameLabel" runat="server" AssociatedControlID="NameRequiredFieldValidator">Navn:</asp:Label>
<asp:CheckBox ID="ShareInfoCheckBox" runat="server" Checked="True" Text="Share my information with partner sites." />
</td>
<td>
<asp:TextBox ID="Name" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="NameRequiredFieldValidator" runat="server"
ControlToValidate="Name" ErrorMessage="Du skal indtaste dit navn"
ToolTip="Du skal indtaste dit navn" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
</ContentTemplate>
</asp:CreateUserWizardStep>
</WizardSteps>
</asp:CreateUserWizard>
.. Und hier ist der codebehind:
public partial class CreateUserWizard : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void CreatingUser(object sender, EventArgs e)
{
Name. //no intellisense and compiler error when I try to access Name
}
}
Sollte dies nicht funktionieren? Es ist in einem UserControl, wenn das macht keinen Unterschied.
Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mehr Beispiele hier.
Versuchen Sie dies:
Der Grund dafür ist, dass deine textbox wird innerhalb eines anderen Objekts, so dass Sie nicht direkt auf ihn zugreifen.
Ist es etwas anderes genannt, 'Name' irgendwo, eine member-variable oder eine Eigenschaft? Versuchen Sie, gibt die Steuerung eine weniger generische Namen wie "Navn" oder etwas weniger wahrscheinlich zu Konflikten.
Sean Bright hat die richtige Idee für Sie, wie um es zu bekommen.
Soweit "Warum": das ist eine Vorlagen-Steuerung, so dass der Artikel, den Sie zugreifen möchten, existiert im inneren von anderen naming-container. Sie können die Kontrolle.FindControl-Funktion, um Zugriff auf die Steuerelemente, die Sie brauchen.
Dies ist ein guter Artikel, der erklärt, vorgefertigte Steuerelemente.
Oder im Falle des anderen vordefinierten Felder für diese wizard-Steuerelement, die Sie verwenden können, CreateUserWizard1.Benutzername/E-Mail/Passwort etc. wird der Zugriff auf diese Werte.