ASP.NET - 隐藏BoundField输入

时间:2013-12-07 23:40:43

标签: c# asp.net detailsview boundfield

我通过ASP.NET中的DetailsView控件实现了与数据库的简单连接。其中一个字段是密码,因此我希望在输入时隐藏其内容。我的第一个想法是TextBox的TextMode =“密码”,但由于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>

1 个答案:

答案 0 :(得分:2)

要做的最好的事情是制作一个ItemTemplate,并在其中,有一个文本框控件并将其输入模式/类型设置为密码。 ItemTemplate允许您在标准BoundField列之外添加常规/自定义用户控件