DropdownList重置为加载时索引0

时间:2009-03-23 17:14:54

标签: asp.net drop-down-menu reload

每次在Firefox中“重新加载”页面时,如何将asp:DropDownList元素(其runat="server")重置为索引0?

如果您建议使用JavaScript,请注意

  • 我没有使用表格
  • 我不知道如何访问具有runat="server" JavaScript
  • 的元素

如果可以使用.aspx页面上的脚本完成此操作,请解释。

4 个答案:

答案 0 :(得分:7)

将代码放入Page_Load事件中以执行此操作

protected void Page_Load(object sender, EventArgs e)
{    
    myDropDownList.SelectedIndex =0;
}

修改

在回复您的评论时,如果您已将上述逻辑放在if语句中以检查是否Page.IsPostback = false,则刷新后所选索引将不会设置回0(执行客户端回发) 。作为演示此示例的示例,这里是一个页面,其下拉列表设置为在选择时自动回复

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>My Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="ddl" runat="server" AutoPostBack="true" >
        </asp:DropDownList>
    </div>
    </form>
</body>
</html>

以下是

背后的代码
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Init(object sender, EventArgs e)
    {
        //Apologies for Dairy Produce inspired list
        ddl.Items.Add(new ListItem("Cheese"));
        ddl.Items.Add(new ListItem("Yoghurt"));
        ddl.Items.Add(new ListItem("Milk"));
        ddl.Items.Add(new ListItem("Butter"));
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        //Run the Page with this in first, then comment out
        //the if statement to leave only ddl.SelectedIndex = 0;

        if (!Page.IsPostBack)
        {
            ddl.SelectedIndex = 0;
        }
    }
}

正如将要演示的那样,当最初运行页面时,刷新时,所选索引将保留在下拉列表中;但是,当注释掉if语句时,刷新时,所选索引将设置为0(在本例中为 Cheese )。

答案 1 :(得分:1)

只需将此代码添加到您的Page_Load事件:

if (myDropDown.Items.Count > 0)
{
    myDropDown.Items[myDropDown.SelectedIndex].Selected = false;
    myDropDown.Items[0].Selected = true;
}

答案 2 :(得分:1)

在代码HTML下的脚本中:

B01 = document.getElementById('<%=me.yourID.clientid %>');
B01.selectedIndex = 0;

快乐编码^^

答案 3 :(得分:1)

阻止Firefox保留视图状态并重新填充表单:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Browser.Browser == "Firefox")
            Form.Attributes.Add("autocomplete", "off");
    }