2010-11-24 81 views
1

我有一个asp.net页面,其中有一个面板默认按钮和更新面板和更新面板内的下拉列表。当我使用上/下键选择一个项目并填写表单时,按下Enter键选择它,表单正在提交。我怎样才能解决这个问题?asp:DropDownList在选择提交页面输入

编辑 一些代码:

<asp:SqlDataSource ID="sdsCountries" runat="server" ConnectionString="cs" 
SelectCommand="SELECT CountryID, Title FROM Countries"/> 

<asp:DropDownList ID="ddlCountries" runat="server" DataSourceID="sdsCountries" 
DataValueField="CountryID" DataTextField="Title" AutoPostBack="True" 
OnSelectedIndexChanged="ddlCountries_SelectedIndexChanged"/> 

<asp:UpdatePanel ID="upState" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:SqlDataSource ID="sdsStates" runat="server" ConnectionString="cs" 
    SelectCommand="SELECT StateID, Title FROM States WHERE [email protected]"> 
      <SelectParameters><asp:ControlParameter Name="CountryID" 
     ControlID="ddlCountries" PropertyName="SelectedValue" DefaultValue="1"/> 
      </SelectParameters> 
     </asp:SqlDataSource> 
     <asp:DropDownList ID="ddlStates" runat="server" DataSourceID="sdsStates" 
     DataValueField="StateID" DataTextField="Title"/> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="ddlCountries" 
     EventName="SelectedIndexChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 

回答

2

在您的下拉列表中确保属性 “的AutoPostBack” 未设置为 “真”

编辑:看到你的评论。我不擅长使用ASP.Net更新面板,因为我通常使用jQuery来处理ajax的东西,但我相信你必须将ddlCountries下拉列表放在它自己的更新面板中,或者将其移动到状态更新面板并将ChildrenAsTriggers属性设置为在该更新面板上为true。

+0

但我需要它启用,因为有相关数据的另一个下拉菜单。例如国家>国家。 ddlCountries更改时,ddlStates将填充相关项目。 – 2010-11-24 20:59:30

1

设置AutoPostBack为假