如何在单击其他单元格时获取文本框中网格视图的单元格值

本文关键字:单元格 中网 网格 视图 取文本 获取 单击 其他 | 更新日期: 2023-09-27 18:35:39

我有一个包含 4 列的网格视图,即:"用户 ID"、"描述"、"显示密码"、"更改密码"。

我已经在每个单元格的"更改密码列"中放置了一个图像按钮,并且在网格视图下方有3个文本框。

当我单击更改密码时,该特定行的用户 ID 应显示在文本框 1 中。

如何在 asp.net 中使用 C# 执行此操作,后端是 MySql 数据库服务器?

如何在单击其他单元格时获取文本框中网格视图的单元格值

我的偏好是使用 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;
}

另一种方法是使用 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") + "'" %>)' />

将"更改密码"列更改为"超链接"。在"数据"部分的该列的属性中,可以看到"数据导航 URL字段"属性。将其设置为"用户 ID"。然后在 DataNavigateUrlFormatString 属性中设置为同一页,如下所示

~/User.aspx?UserId={0}

然后在页面加载事件中编写以下代码

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

这可能不是最好的拍摄。但这可能是一些解决方法