2013-12-07 4 views
0

У меня есть простое подключение к базе данных, полученной с помощью элемента управления DetailsView в ASP.NET. Одним из полей является пароль, поэтому я хотел бы, чтобы его содержимое было скрыто во время ввода. Моя первая мысль была TextMode = «Пароль» TextBox, но это было неудачно, так как класс BoundField не реализует его. Я предполагаю, что это должно быть сделано программно через обработчик событий, но я просто не знаю, как это сделать.ASP.NET - скрытие ввода BoundField

Вот разметка я написал до сих пор, в случае необходимости:

<body> 
    <form id="form1" runat="server"> 
    <div class="register" runat="server"> 
     <asp:DetailsView ID="InsertData" runat="server" HorizontalAlign="Center" 
      Height="100px" Width="170px" 
      AutoGenerateRows="False" DataSourceID="usersConnectionString" 
      DefaultMode="Insert" OnItemCommand="Button_click" OnItemInserted="Insert_click"> 
      <Fields> 
       <asp:BoundField DataField="userName" HeaderText="Name" 
        SortExpression="userName" /> 
       <asp:BoundField DataField="userPassword" HeaderText="Password" 
        SortExpression="userPassword" /> 
       <asp:BoundField DataField="userEmail" HeaderText="Email" 
        SortExpression="userEmail" /> 
       <asp:CommandField ShowInsertButton="True" /> 
      </Fields> 
     </asp:DetailsView> 
     <asp:SqlDataSource ID="usersConnectionString" runat="server" 
      ConnectionString="<%$ ConnectionStrings:usersConnectionString %>" 
      InsertCommand="INSERT INTO user(userName, userPassword, userEmail) VALUES (@userName, @userPassword, @userEmail)"> 
      <InsertParameters> 
       <asp:Parameter Name="userName" Type="String" /> 
       <asp:Parameter Name="userPassword" Type="String" /> 
       <asp:Parameter Name="userEmail" Type="String" /> 
      </InsertParameters> 
     </asp:SqlDataSource> 
     <asp:Label ID="Message_label" ForeColor="red" Visible="false" runat="server" Text="[messageLabel]"></asp:Label> 
    </div> 
    </form> 
</body> 
+0

Почему вы хотите показать пароль? вы действительно должны иметь ссылку для отображения диалогового окна пароля, например, для того, чтобы пользователь мог ввести/изменить свой пароль. Подумайте о безопасности здесь. Может быть, вместо этого, неуверенный, попробуйте использовать TemplateField вместо этого и добавьте текстовое поле, в которое вы можете установить тип ввода на пароль –

+0

@Ahmed Я пытаюсь запутать текст, введенный пользователем, который хочет зарегистрироваться. Вы знаете, что я имею в виду - эти маленькие черные круги вместо персонажей (по крайней мере, так выглядит Firefox)? Безопасность здесь не проблема, поскольку это просто школьное задание. – Venom

+0

@ Ахмед. Ваш совет работал как шарм, сделайте ответ, если хотите, и я приму его. Благодаря! – Venom

ответ

2

Самое лучшее, что можно сделать в это сделать ItemTemplate и в том, что есть элемент управления текстового поля и установите его в режим ввода/введите пароль. Элемент ItemTemplate позволяет добавлять обычные/пользовательские элементы управления по своему вкусу за пределы стандартных столбцов BoundField