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 に答える