【问题标题】:Forcing Default button on a gridview在gridview上强制使用默认按钮
【发布时间】:2011-04-05 23:53:18
【问题描述】:

我正在使用带有模板的 gridview 来显示和编辑来自 sql 数据库的一些信息。

当我编辑和更改该行中的数据然后单击输入时,它会自动按下页面上最高的按钮,该按钮使用提交到服务器设置为 true,这意味着它将尝试删除而不是更新。

我已经尝试在 gridview 周围设置一个面板并将面板的默认按钮设置为“更新按钮”,但它不允许这样做,因为它无法“看到”按钮。

【问题讨论】:

    标签: vb.net button default


    【解决方案1】:

    我遇到了类似的问题,我找到了一个非常简单的解决方法:

    1. 在 GridView 下方放置一个按钮并通过 CSS 使其不可见(即位置:相对;左侧:-2000px)
    2. 围绕 GridView 创建一个面板,并将我们刚刚创建的按钮的 ID 作为 DefaultButton 提供给它。
    3. 为按钮的单击事件编写以下代码行: myGridView.UpdateRow(myGridView.EditIndex, false);

    现在只要在 GridView 中按回车,编辑的行就会被确认。

    【讨论】:

    • 非常好的技巧。您还可以将按钮包装在 <div style="display: none;"> 中以隐藏它而不会破坏回发处理程序。
    • 我同意显示无。
    【解决方案2】:

    您需要处理网格的 KeyDown 或 KeyPress 事件,如果 Keys.Enter 则检查是否按下了键:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    
        private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                button1_Click(this, EventArgs.Empty);
            }
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            // Your logic here
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 2023-03-15
      • 2016-08-14
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      相关资源
      最近更新 更多