DropDownList输入事件问题

时间:2017-08-03 14:18:40

标签: css asp.net

当我专注于UI中的DropDownList时,它会打开并显示数据。如果我尝试通过按Enter键从DropDownList中选择文本,那么它应该选择一个文本并移动到另一个输入控件。但是,我的情况并没有发生这种情况。

选项卡选择和鼠标选择正在运行。它发生在我的页面And Project中的有限位置。

我通过删除CSS尝试了解决方案。我也在谷歌上搜索。但是,我没有找到问题和答案的实际原因。

2 个答案:

答案 0 :(得分:0)

这对我有用,当我按下ENTER时,会调用SelectedIndexChanged事件

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">   
    <asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true">
        <asp:ListItem>Primo</asp:ListItem>
        <asp:ListItem>Secondo</asp:ListItem>
        <asp:ListItem>Terzo</asp:ListItem>
    </asp:DropDownList>
    <asp:Button ID="Button1" runat="server" Text="Button" />
</asp:Content>

为此工作添加AutoPostback=true至关重要

答案 1 :(得分:0)

如果您的控件使用selectedIndexchange事件回发,那么下一个焦点元素将不会被聚焦,因为回发发生了。

要做到这一点,你必须找到下一个元素并专注于该变化事件,如下所示

  <asp:TextBox ID="txtFirstName" OnTextChanged="txtFirstName_TextChanged" placeholder="" AutoPostBack="true" CssClass="form-control" runat="server"></asp:TextBox>


  <asp:TextBox ID="txtLastName" OnTextChanged="txtFirstName_TextChanged" placeholder="" AutoPostBack="true" CssClass="form-control" runat="server"></asp:TextBox>

代码背后:

  protected void txtMEMBID_TextChanged(object sender, EventArgs e)
  {
    if(ValidCondition)
    {
      //go to next element
      txtLastName.Focus();
    }
  }