1

如果这是不可能的,我怎样才能从现场获取密码?

    dim pw1 as textbox, password as string
    pw1 = ctype(FindControl("PasswordStr"), textbox)
    password = pw1.text

不:System.NullReferenceException:对象引用未设置为对象的实例。

此代码位于我通过单击按钮调用的子程序中


编辑:rockinthesixstring

这是 OP 所说的他的 ASPX 标记的样子

<form runat="server" id="form1">
  <p>
    <label for="passwordStr">Password</label>
    <input type="text" textmode="password" id="passwordStr" name="passwordStr" maxlength="50">  
  </p>
</form>
4

4 回答 4

2

如果密码字段不在中继器之类的另一个“容器”中,那么您只需访问它即可。

您的密码字段的 ID 是什么?

<asp:TextBox ID="txtPassword" TextMode="password" runat="server" />

您可以这样访问它:

pw1 = txtPassword.Text;
于 2011-04-05T15:45:35.583 回答
1

从外观上看,您没有使用服务器控件(根据您的评论)

在 aspx 页面上使用一个控件,如下所示:

<asp:TextBox TextMode="Password" ID="passwordInput" runat"server"></asp:TextBox>

您可以使用从代码隐藏文件访问服务器控件

passwordInput.Text
于 2011-04-05T15:45:47.220 回答
1

如果您的密码字段只是页面上的一个 ASP.NET 控件(未嵌套在另一个控件中,例如 GridView ItemTemplate),您可以这样做:

string password = PasswordStr.Text;
于 2011-04-05T15:47:19.387 回答
0

因为我们不知道你的 ASPX 是什么样子,所以我们有点在黑暗中拍摄。

假设你有一个看起来像这样的 aspx

<form id="form1" runat="server" DefaultFocus="formVw$txtName">
    <div>
        <asp:FormView ID="formVw" runat="server">
            <ItemTemplate>
                Name: 
                <asp:TextBox ID="txtName" runat="server"
                        Text='<%# Eval("FirstName") + " " + Eval("LastName") %>' />
            </ItemTemplate>
        </asp:FormView>
    </div>
</form>

你会发现这样的控件

TextBox tb = this.FindControl("form1$formVw$txtName") as TextBox;
if (tb != null)
{
    //Access TextBox control
}

您最初发布的代码正在寻找其中的控件,Form这意味着,如果您有另一个控件(FormVw例如),那么您的代码将找不到嵌套的文本框。


编辑

你说你的表格看起来像这样

<form runat="server" id="form1">
  <p>
    <label for="passwordStr">Password</label>
    <input type="text" textmode="password" id="passwordStr" name="passwordStr" maxlength="50">  
  </p>
</form>

改成这个

<form runat="server" id="form1">
  <p>
    <label for="passwordStr">Password</label>
    <asp:TextBox runat="server" TextMode="password" ID="passwordStr" maxlength="50">  
  </p>
</form>

然后像这样访问密码字段

string password = passwordStr.Text;
于 2011-04-05T15:50:33.737 回答