「ユーザーID」、「説明」、「パスワードの表示」、「パスワードの変更」という4つの列を持つ1つのグリッドビューがあります。
各セルの [パスワードの変更] 列にイメージ ボタンを配置し、Gridview の下に 3 つのテキスト ボックスがあります。
[パスワードの変更] をクリックすると、その特定の行のユーザー ID がテキスト ボックス 1 に表示されます。
C#を使用してasp.netでこれを行う方法とバックエンドはMySql DBサーバーですか?
私の好みは、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") + "'" %>)' />
[パスワードの変更] 列を [ハイパーリンク] フィールドに変更します。[データ] セクションの列のプロパティで、DataNavigateUrlFields プロパティを確認できます。「ユーザーID」として設定してください。次に、DataNavigateUrlFormatString プロパティで、次のように同じページに設定します。
~/User.aspx?UserId={0}
次に、ページ読み込みイベントで次のコードを記述します
String userId= Request["UserId"];
if (!string.IsNullOrEmpty(userId))
TextBox1.Text = userId;
これは最高の撮影ではないかもしれません。しかし、これはいくつかの回避策になる可能性があります