代码之家  ›  专栏  ›  技术社区  ›  Martin

ASP.NET:按钮事件不会触发,因为它在下拉列表中被另一个事件阻止(uxFromDate_TextChanged)

  •  0
  • Martin  · 技术社区  · 15 年前

    我有一个按钮,它有一个点击事件,但它不是在第一次点击。我怀疑这与我在下拉框控件中有关,所以当我单击按钮时,下拉框的事件发生(textChanged),但它忘记了单击事件:-)

    当然,如果我再按一次它就行了。

    或者,如果我先单击其他地方以使事件TextChange发生,然后在第一次执行时单击按钮。。

    这正常吗?如果有的话还有什么解决办法?

    基本上,TextChange事件必须触发,但是button click事件也必须触发。

    我说的所有事件都是ASP.NET事件。

    下面是一些我正在使用的事件的示例-按钮和下拉菜单

    uxGetData是一个按钮,uxToDate是一个下拉框

    protected void uxGetData_Click(object sender, EventArgs e)
    {
    
        BindGrid();
        RefreshBindings();
    
    }
    
    protected void uxToDate_TextChanged(object sender, EventArgs e)
    {
        DateTime date;
        bool valid = DateTime.TryParse(uxToDate.Text, out date);
    
        if (valid)
        {
            MyDate myDate= _repository.GetBetweenDate(date);
            if (myDate!= null)
                uxToMyDate.SelectedValue = Convert.ToString(myDate.item);
        }
    }
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   Shadow Wizard    15 年前

    一种方法是取消下拉列表的AutoPostBack并使用AJAX来更新oother下拉列表。

    第二种方法是使用客户端脚本在更改下拉选择时禁用该按钮,这样用户就无法单击它-这将防止混淆。

    想不出第三种方法可以绕过自动取款机,所以希望上面的一种方法合适。:)