0

「ユーザーID」、「説明」、「パスワードの表示」、「パスワードの変更」という4つの列を持つ1つのグリッドビューがあります。

各セルの [パスワードの変更] 列にイメージ ボタンを配置し、Gridview の下に 3 つのテキスト ボックスがあります。

[パスワードの変更] をクリックすると、その特定の行のユーザー ID がテキスト ボックス 1 に表示されます。

C#を使用してasp.netでこれを行う方法とバックエンドはMySql DBサーバーですか?

4

2 に答える 2

1

私の好みは、CommandArgumentプロパティを使用して、クリック イベントにメソッドを aspx コード ビハインドのボタンに直接割り当てることです。

<asp:Button ID="btnChangePassword" CommandArgument='<%# Eval('UserID') %>' OnClick="MyEventMethod" />

次に、コード ビハインドには、それを処理するメソッドがあります。

public void MyEventMethod(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    this.TextBox1.Text = btn.CommandArgument;
}

もう 1 つの方法は、JavaScript (ポストバックを回避するため) と onClientClick プロパティを使用することです。グリッドビューの上のどこかに、この割り当てを処理するメソッドがありました。

<script type="text/javascript">
    // Gets the actual reference to the textbox in javascript
    // using the client id
    function SetTextBoxUserID(userid)
    {
        var textbox1 = document.getElementById('<%= this.TextBox1.ClientID %>');
        textbox1.value = userid;
    }
</script>

次に、コントロールは次のようになります。

<asp:Button ID="btnChangePassword" OnClientClick='SetTextBoxUserID(<%# "'" + Eval("UserID") + "'" %>)' />
于 2012-05-30T12:19:34.780 に答える
0

[パスワードの変更] 列を [ハイパーリンク] フィールドに変更します。[データ] セクションの列のプロパティで、DataNavigateUrlFields プロパティを確認できます。「ユーザーID」として設定してください。次に、DataNavigateUrlFormatString プロパティで、次のように同じページに設定します。

~/User.aspx?UserId={0}

次に、ページ読み込みイベントで次のコードを記述します

String userId= Request["UserId"];
        if (!string.IsNullOrEmpty(userId))
            TextBox1.Text = userId;

これは最高の撮影ではないかもしれません。しかし、これはいくつかの回避策になる可能性があります

于 2012-05-30T09:59:48.387 に答える