Back to Devexpress

ASPxTextBoxBase.Password Property

aspnet-devexpress-dot-web-dot-aspxtextboxbase.md

latest15.8 KB
Original Source

ASPxTextBoxBase.Password Property

Gets or sets a value that specifies whether the input is treated as a password and all characters entered into the editor are masked.

Namespace : DevExpress.Web

Assembly : DevExpress.Web.v25.2.dll

NuGet Package : DevExpress.Web

Declaration

csharp
[DefaultValue(false)]
public virtual bool Password { get; set; }
vb
<DefaultValue(False)>
Public Overridable Property Password As Boolean

Property Value

TypeDefaultDescription
Booleanfalse

true if the editor’s characters are masked; otherwise, false.

|

Remarks

This property is a wrapper of the TextBoxPropertiesBase.Password property. Refer to its description for more information.

Example

According to the security settings which are implemented in our editors, the password can't be set on the server side. So, if you edit a filed that has the Password = true setting, you will see an empty editor, which might cause a number of problems for end-users.

This example illustrates one of possible manners to edit a password field.

View Example

aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="DevExpress.Web.v15.1, Version=15.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
    Namespace="DevExpress.Web" TagPrefix="dx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
    <title>How to edit a password field</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" KeyFieldName="ID"
                ClientInstanceName="grid" OnRowInserting="ASPxGridView1_RowInserting" OnRowUpdating="ASPxGridView1_RowUpdating">
                <Columns>
                    <dx:GridViewCommandColumn VisibleIndex="0" ShowEditButton="True" ShowNewButton="True" />
                    <dx:GridViewDataTextColumn Caption="User ID" FieldName="ID" VisibleIndex="1">
                    </dx:GridViewDataTextColumn>
                    <dx:GridViewDataTextColumn Caption="User Name" FieldName="Username" VisibleIndex="2">
                    </dx:GridViewDataTextColumn>
                    <dx:GridViewDataTextColumn FieldName="Password" VisibleIndex="3">
                        <PropertiesTextEdit Password="True" ClientInstanceName="psweditor">
                        </PropertiesTextEdit>
                        <EditItemTemplate>
                            <dx:ASPxTextBox ID="pswtextbox" runat="server" Text='<%# Bind("Password") %>'
                                Visible='<%# ASPxGridView1.IsNewRowEditing %>' Password="True">
                                <ClientSideEvents Validation="function(s,e){e.isValid = s.GetText()>5;}" />
                            </dx:ASPxTextBox>
                            <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="popup.ShowAtElement(this); return false;" Visible='<%#!ASPxGridView1.IsNewRowEditing%>'>Edit password</asp:LinkButton>
                        </EditItemTemplate>
                    </dx:GridViewDataTextColumn>
                </Columns>
                <SettingsCommandButton>
                    <NewButton Text="Add user" />
                </SettingsCommandButton>
            </dx:ASPxGridView>
            <dx:ASPxPopupControl ID="ASPxPopupControl1" runat="server" HeaderText="Edit password" Width="307px" ClientInstanceName="popup">
                <ContentCollection>
                    <dx:PopupControlContentControl ID="Popupcontrolcontentcontrol1" runat="server">
                        <table>
                            <tr>
                                <td>Enter new password:</td>
                                <td>
                                    <dx:ASPxTextBox ID="npsw" runat="server" Password="True" ClientInstanceName="npsw">
                                        <ClientSideEvents Validation="function(s, e) {e.isValid = (s.GetText().length&gt;5)}" />
                                        <ValidationSettings ErrorDisplayMode="ImageWithTooltip" ErrorText="The password lengt should be more that 6 symbols">
                                        </ValidationSettings>
                                    </dx:ASPxTextBox>
                                </td>
                            </tr>
                            <tr>
                                <td>Confirm new password:</td>
                                <td>
                                    <dx:ASPxTextBox ID="cnpsw" runat="server" Password="True" ClientInstanceName="cnpsw">
                                        <ClientSideEvents Validation="function(s, e) {e.isValid = (s.GetText() == npsw.GetText());}" />
                                        <ValidationSettings ErrorDisplayMode="ImageWithTooltip" ErrorText="The password is incorrect">
                                        </ValidationSettings>
                                    </dx:ASPxTextBox>
                                </td>
                            </tr>
                        </table>
                        <dx:ASPxButton ID="confirmButton" runat="server" Text="Ok" AutoPostBack="False" OnClick="confirmButton_Click">
                        </dx:ASPxButton>

                    </dx:PopupControlContentControl>
                </ContentCollection>
            </dx:ASPxPopupControl>
        </div>
    </form>
</body>
</html>
csharp
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DevExpress.Web;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Init(object sender, EventArgs e) {
        DataTable dt = new DataTable();
        if (Session["data"] == null)
        {
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("Username", typeof(string));
            dt.Columns.Add("Password", typeof(string));
            dt.Rows.Add(new object[] {1,"Testuser","abcdef"});
            Session["data"] = dt;
        }
        else
        {
            dt = Session["data"] as DataTable;
        }

        ASPxGridView1.DataSource = dt;
        ASPxGridView1.DataBind();
    }

    protected void confirmButton_Click(object sender, EventArgs e) {
        UpdatePasswordField(cnpsw.Text);
        ASPxPopupControl1.ShowOnPageLoad = false;
    }

    protected void UpdatePasswordField(string newPassword) {
        int index = ASPxGridView1.EditingRowVisibleIndex;
        DataTable dt = Session["data"] as DataTable;
        dt.Rows[index]["Password"] = newPassword;
        Session["data"] = dt;

    }
    protected void ASPxGridView1_DataBound(object sender, EventArgs e) {

    }

    protected void ASPxGridView1_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) {
        e.Cancel = true;
        DataTable dt = Session["data"] as DataTable;
        int test1 = Convert.ToInt32(e.NewValues["ID"]);
        string test2 = e.NewValues["Username"].ToString();
        string test3 = e.NewValues["Password"].ToString();
        dt.Rows.Add(new object[] {Convert.ToInt32(e.NewValues["ID"]), e.NewValues["Username"].ToString(), e.NewValues["Password"].ToString() });
        Session["data"] = dt;
        ((ASPxGridView)sender).CancelEdit();
    }

    protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) {
        e.Cancel = true;
        int index = ((ASPxGridView)sender).EditingRowVisibleIndex;
        DataTable dt = Session["data"] as DataTable;
        dt.Rows[index]["ID"] = e.NewValues["ID"];
        dt.Rows[index]["Username"] = e.NewValues["Username"];
        Session["data"] = dt;
        ((ASPxGridView)sender).CancelEdit();
    }
}
vb
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports DevExpress.Web

Partial Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
        Dim dt As New DataTable()
        If Session("data") Is Nothing Then
            dt.Columns.Add("ID", GetType(Integer))
            dt.Columns.Add("Username", GetType(String))
            dt.Columns.Add("Password", GetType(String))
            dt.Rows.Add(New Object() {1,"Testuser","abcdef"})
            Session("data") = dt
        Else
            dt = TryCast(Session("data"), DataTable)
        End If

        ASPxGridView1.DataSource = dt
        ASPxGridView1.DataBind()
    End Sub

    Protected Sub confirmButton_Click(ByVal sender As Object, ByVal e As EventArgs)
        UpdatePasswordField(cnpsw.Text)
        ASPxPopupControl1.ShowOnPageLoad = False
    End Sub

    Protected Sub UpdatePasswordField(ByVal newPassword As String)
        Dim index As Integer = ASPxGridView1.EditingRowVisibleIndex
        Dim dt As DataTable = TryCast(Session("data"), DataTable)
        dt.Rows(index)("Password") = newPassword
        Session("data") = dt

    End Sub
    Protected Sub ASPxGridView1_DataBound(ByVal sender As Object, ByVal e As EventArgs)

    End Sub

    Protected Sub ASPxGridView1_RowInserting(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataInsertingEventArgs)
        e.Cancel = True
        Dim dt As DataTable = TryCast(Session("data"), DataTable)
        Dim test1 As Integer = Convert.ToInt32(e.NewValues("ID"))
        Dim test2 As String = e.NewValues("Username").ToString()
        Dim test3 As String = e.NewValues("Password").ToString()
        dt.Rows.Add(New Object() {Convert.ToInt32(e.NewValues("ID")), e.NewValues("Username").ToString(), e.NewValues("Password").ToString() })
        Session("data") = dt
        DirectCast(sender, ASPxGridView).CancelEdit()
    End Sub

    Protected Sub ASPxGridView1_RowUpdating(ByVal sender As Object, ByVal e As DevExpress.Web.Data.ASPxDataUpdatingEventArgs)
        e.Cancel = True
        Dim index As Integer = DirectCast(sender, ASPxGridView).EditingRowVisibleIndex
        Dim dt As DataTable = TryCast(Session("data"), DataTable)
        dt.Rows(index)("ID") = e.NewValues("ID")
        dt.Rows(index)("Username") = e.NewValues("Username")
        Session("data") = dt
        DirectCast(sender, ASPxGridView).CancelEdit()
    End Sub
End Class
aspx
<%@ Page Language="vb" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<%@ Register Assembly="DevExpress.Web.v15.1, Version=15.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
    Namespace="DevExpress.Web" TagPrefix="dx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
    <title>How to edit a password field</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" KeyFieldName="ID"
                ClientInstanceName="grid" OnRowInserting="ASPxGridView1_RowInserting" OnRowUpdating="ASPxGridView1_RowUpdating">
                <Columns>
                    <dx:GridViewCommandColumn VisibleIndex="0" ShowEditButton="True" ShowNewButton="True" />
                    <dx:GridViewDataTextColumn Caption="User ID" FieldName="ID" VisibleIndex="1">
                    </dx:GridViewDataTextColumn>
                    <dx:GridViewDataTextColumn Caption="User Name" FieldName="Username" VisibleIndex="2">
                    </dx:GridViewDataTextColumn>
                    <dx:GridViewDataTextColumn FieldName="Password" VisibleIndex="3">
                        <PropertiesTextEdit Password="True" ClientInstanceName="psweditor">
                        </PropertiesTextEdit>
                        <EditItemTemplate>
                            <dx:ASPxTextBox ID="pswtextbox" runat="server" Text='<%#Bind("Password")%>'
                                Visible='<%#ASPxGridView1.IsNewRowEditing%>' Password="True">
                                <ClientSideEvents Validation="function(s,e){e.isValid = s.GetText()>5;}" />
                            </dx:ASPxTextBox>
                            <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="popup.ShowAtElement(this); return false;" Visible='<%#Not ASPxGridView1.IsNewRowEditing%>'>Edit password</asp:LinkButton>
                        </EditItemTemplate>
                    </dx:GridViewDataTextColumn>
                </Columns>
                <SettingsCommandButton>
                    <NewButton Text="Add user" />
                </SettingsCommandButton>
            </dx:ASPxGridView>
            <dx:ASPxPopupControl ID="ASPxPopupControl1" runat="server" HeaderText="Edit password" Width="307px" ClientInstanceName="popup">
                <ContentCollection>
                    <dx:PopupControlContentControl ID="Popupcontrolcontentcontrol1" runat="server">
                        <table>
                            <tr>
                                <td>Enter new password:</td>
                                <td>
                                    <dx:ASPxTextBox ID="npsw" runat="server" Password="True" ClientInstanceName="npsw">
                                        <ClientSideEvents Validation="function(s, e) {e.isValid = (s.GetText().length&gt;5)}" />
                                        <ValidationSettings ErrorDisplayMode="ImageWithTooltip" ErrorText="The password lengt should be more that 6 symbols">
                                        </ValidationSettings>
                                    </dx:ASPxTextBox>
                                </td>
                            </tr>
                            <tr>
                                <td>Confirm new password:</td>
                                <td>
                                    <dx:ASPxTextBox ID="cnpsw" runat="server" Password="True" ClientInstanceName="cnpsw">
                                        <ClientSideEvents Validation="function(s, e) {e.isValid = (s.GetText() == npsw.GetText());}" />
                                        <ValidationSettings ErrorDisplayMode="ImageWithTooltip" ErrorText="The password is incorrect">
                                        </ValidationSettings>
                                    </dx:ASPxTextBox>
                                </td>
                            </tr>
                        </table>
                        <dx:ASPxButton ID="confirmButton" runat="server" Text="Ok" AutoPostBack="False" OnClick="confirmButton_Click">
                        </dx:ASPxButton>

                    </dx:PopupControlContentControl>
                </ContentCollection>
            </dx:ASPxPopupControl>
        </div>
    </form>
</body>
</html>

See Also

Text Box

ASPxTextBoxBase Class

ASPxTextBoxBase Members

DevExpress.Web Namespace