强制网格视图上的默认按钮

时间:2009-09-07 12:40:21

标签: vb.net button default

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

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

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

2 个答案:

答案 0 :(得分:4)

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

  1. 在GridView下方放置一个按钮,使CSS看不到它(即位置:相对;左:-2000px)
  2. 围绕GridView创建一个Panel,并将其作为DefaultButton提供我们刚创建的按钮的ID。
  3. 为按钮的点击事件编写以下代码行: myGridView.UpdateRow(myGridView.EditIndex,false);
  4. 每当您在GridView中按Enter键时,将确认编辑的行。

答案 1 :(得分:0)

你需要进行网格的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
    }
}