我通过DetailsView控件在ASP.NET中实现了一个数据库的简单连接,其中一个字段是密码,所以我希望在输入时隐藏它的内容。我的第一个想法是文本框的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>发布于 2013-12-08 00:08:42
其中最好的方法是创建一个ItemTemplate,并在其中设置一个textbox控件,并将其输入模式/类型设置为密码。ItemTemplate允许您在标准BoundField列之外添加普通/自定义用户控件。
https://stackoverflow.com/questions/20448110
复制相似问题