25

I have a few buttons on a web form, and when the user clicks them they will update the the textbox. This worked till I added the textmode = password. Now the textbox doesn't show the text anymore. I debugged the app, and the text property is getting the value, but once again it is not showing.

Here is what I have tried:

 protected void btn_punch_7_Click(object sender, EventArgs e)
    {

        const string string_punch_Number_7 = "7";
        var text = txt_punch.Text;
        text += string_punch_Number_7;

        txt_punch.Text = text;


    }

    protected void btn_punch_8_Click(object sender, EventArgs e)
    {
        const string string_punch_Number_8 = "8";
        var text = txt_punch.Text;
        text += string_punch_Number_8;

        txt_punch.Text = text;

    }

I have also tired this:

public partial class WebForm3 : System.Web.UI.Page
{
    public string string_punch;
    protected void Page_Load(object sender, EventArgs e)
    {
        MultiView1.SetActiveView(View1);

        txt_punch.Width = 300;
        txt_punch.Height = 50;
        txt_punch.MaxLength = 4;
        txt_punch.Attributes.Add("OnChange", string_punch);

    }

    protected void btn_punch_7_Click(object sender, EventArgs e)
    {

        const string string_punch_Number_7 = "7";
        string_punch = txt_punch.Text;
        string_punch += string_punch_Number_7;

        txt_punch.Text = string_punch;


    }

    protected void btn_punch_8_Click(object sender, EventArgs e)
    {
        const string string_punch_Number_8 = "8";
        string_punch = txt_punch.Text;
        string_punch += string_punch_Number_8;

        txt_punch.Text = string_punch;

    }
4

7 回答 7

61

你有多绝望?

如果你还不够绝望去尝试任何东西,任何让它发挥作用的东西,请不要继续阅读。这不会很好。好的?好的。

诀窍是让网络应用认为它不是密码框。换句话说,不要使用TextMode="password".
然后在Page_Load,放txt_punch.Attributes["type"] = "password"

而已。浏览器会知道这是一个密码字段(并显示星号或圆点),但服务器端不知道,因此它将内容发送到客户端,因为它是纯文本。当然,这也会把密码放在页面源中……

于 2013-05-24T18:51:36.663 回答
15

当您将 TextBox 的 TextMode 属性设置为 Password 时,默认行为是不显示 Text 属性的值。

这是为了防止在页面的 HTML 源代码中显示未屏蔽的密码。

一种解决方案是使用属性来保存密码值:

TextBox.Attributes.Add("value", "yourPassword");

资源

于 2013-05-24T16:23:59.320 回答
1

根据 Kola 的答案的选项之一,您可以试试这个:

TextBox.Attributes["value"] = "Whatever value goes here";
于 2016-05-30T13:47:23.577 回答
1

当您将文本框的属性设置为TextMode="Password"然后在编辑模式下文本框显示空白。如果你填写像

TextBox.Text = "Password";

然后无法正常工作,您需要再次输入密码才能保存表单。您可以使用属性在文本框中填充值,如下面的代码。

TextBox.Attributes["value"] = "your password value";
于 2019-01-09T06:19:05.473 回答
0

这是一个asp.net的BUG!!电子邮件验证算法非常严格,导致某些有效电子邮件被排除在外。如果您从“Password”tp“SingleLine”切换 TextMode,您的代码将起作用。

于 2017-03-07T13:47:37.207 回答
0

我们不能直接为密码文本框赋值。为了给文本框密码赋值,我们应该使用文本框属性

Textbox1.Attributes.Add("value",variable/"string");
于 2017-08-05T18:43:56.600 回答
-1

密码通常不用于显示,但如果您打算这样做,此页面可能会对您有所帮助

于 2013-05-24T16:42:39.037 回答