none
如何将DropDownList的控件置空? RRS feed

  • 问题

  •  protected void tbxReset_Click(object sender, EventArgs e)
        {
            DropDownList1.SelectedValue = "";
            DropDownList2.SelectedValue = "";
            DropDownList3.SelectedValue = "";
            DropDownList4.SelectedValue = "";
            DropDownList5.SelectedValue = "";
            DropDownList6.SelectedValue = "";
            tbxID.Text = "";
        }
    以前没有遇到过DropDownList的控件置空问题,今天突发奇想,想把它置空,可是编写出来的代码有问题,所以想问看看!
    2010年2月3日 13:53

答案

  • <%@ Page Language="C#" AutoEventWireup="true" %>
    <%@ Import Namespace="System.Data" %>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                this.InitControls();
        }
    
        private void InitControls()
        {
            // 模拟一个数据源
            DataTable dt = new DataTable();
    
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Name", typeof(String));
    
            dt.Rows.Add(new object[] { 1, "Sam"});
            dt.Rows.Add(new object[] { 2, "John" });
    
            this.DropDownList1.AppendDataBoundItems = true; // 需要 Asp.Net 2.0 支持
            this.DropDownList1.Items.Add(new ListItem("请选择...", "-1"));
            
            this.DropDownList1.DataTextField = "Name";
            this.DropDownList1.DataValueField = "Id";
            this.DropDownList1.DataSource = dt;
            this.DropDownList1.DataBind();
            
            // 另外还可以通过在绑定之后使用下面的方式添加
            // this.DropDownList1.Items.Insert(0, new ListItem("请选择...", "-1")); 
        }
    
        protected void Button1_Click(object sender, EventArgs e)
        {
            this.DropDownList1.SelectedIndex = 0;
        }
        
    </script>
    
    <!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>DropDownList 添加默认项及恢复默认设置</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:DropDownList ID="DropDownList1" runat="server" />
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="恢复默认" />
        </form>
    </body>
    </html>
    

    知识改变命运,奋斗成就人生!
    • 已标记为答案 Smiling008 2010年2月4日 5:31
    2010年2月4日 4:38
    版主

全部回复

  •  DropDownList1.Items.Clear();
    或者.........
                foreach (ListItem i in DropDownList1.Items)
                {
                   i.Value= i.Text = "";
                   
                }
    2010年2月3日 17:23
  • 你好!

    在你每个 DropDownList 的第一项中插入 "请选择..."。初始选择使用 SelectedIndex = 0;

    知识改变命运,奋斗成就人生!
    2010年2月4日 1:18
    版主
  • 置空是什么意思?
    把里面的所有 ListItem 删除?
    把里面的所有 ListItem 的Text和Value设为空字符?
    把DropDownList 选择清空 ClearSelection?
    2010年2月4日 2:34
  • DropDownList1.Items.Clear();
    2010年2月4日 3:44
  • 你好!

    在你每个 DropDownList 的第一项中插入 "请选择..."。初始选择使用 SelectedIndex = 0;

    知识改变命运,奋斗成就人生!

    可不可以,举一个例子啊!
    2010年2月4日 3:54
  •  DropDownList1.Items.Clear();
    或者.........
                foreach (ListItem i in DropDownList1.Items)
                {
                   i.Value= i.Text = "";
                   
                }

    貌似是我解释得不清楚,我的意思原本是这样的:关于DorpDownList的重置问题,因为textbox的重置的意思从某种意思上说,我就理解为置空,所以也把DorpDownList的重置说成了置空。
      我是想在点击重置按钮过后,DropDownList回到原始的界面内容(就是没选择之前的初始页面),不知您是否明白了,不是真的意义上的置空
    2010年2月4日 4:14
  • 你好,

    X.X.Y<abbr class="affil">版主版主的回复应该可以解决你的问题。</abbr>
    Microsoft Online Community Support
    2010年2月4日 4:23
  • <%@ Page Language="C#" AutoEventWireup="true" %>
    <%@ Import Namespace="System.Data" %>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                this.InitControls();
        }
    
        private void InitControls()
        {
            // 模拟一个数据源
            DataTable dt = new DataTable();
    
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Name", typeof(String));
    
            dt.Rows.Add(new object[] { 1, "Sam"});
            dt.Rows.Add(new object[] { 2, "John" });
    
            this.DropDownList1.AppendDataBoundItems = true; // 需要 Asp.Net 2.0 支持
            this.DropDownList1.Items.Add(new ListItem("请选择...", "-1"));
            
            this.DropDownList1.DataTextField = "Name";
            this.DropDownList1.DataValueField = "Id";
            this.DropDownList1.DataSource = dt;
            this.DropDownList1.DataBind();
            
            // 另外还可以通过在绑定之后使用下面的方式添加
            // this.DropDownList1.Items.Insert(0, new ListItem("请选择...", "-1")); 
        }
    
        protected void Button1_Click(object sender, EventArgs e)
        {
            this.DropDownList1.SelectedIndex = 0;
        }
        
    </script>
    
    <!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>DropDownList 添加默认项及恢复默认设置</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:DropDownList ID="DropDownList1" runat="server" />
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="恢复默认" />
        </form>
    </body>
    </html>
    

    知识改变命运,奋斗成就人生!
    • 已标记为答案 Smiling008 2010年2月4日 5:31
    2010年2月4日 4:38
    版主
  • <%@ Page Language="C#" AutoEventWireup="true" %>
    
    <%@ Import Namespace="System.Data" %>
    
    
    
    <script runat="server">
    
        protected void Page_Load(object sender, EventArgs e)
    
        {
    
            if (!IsPostBack)
    
                this.InitControls();
    
        }
    
    
    
        private void InitControls()
    
        {
    
            // 模拟一个数据源
    
            DataTable dt = new DataTable();
    
    
    
            dt.Columns.Add("Id", typeof(int));
    
            dt.Columns.Add("Name", typeof(String));
    
    
    
            dt.Rows.Add(new object[] { 1, "Sam"});
    
            dt.Rows.Add(new object[] { 2, "John" });
    
    
    
            this.DropDownList1.AppendDataBoundItems = true; // 需要 Asp.Net 2.0 支持
    
            this.DropDownList1.Items.Add(new ListItem("请选择...", "-1"));
    
            
    
            this.DropDownList1.DataTextField = "Name";
    
            this.DropDownList1.DataValueField = "Id";
    
            this.DropDownList1.DataSource = dt;
    
            this.DropDownList1.DataBind();
    
            
    
            // 另外还可以通过在绑定之后使用下面的方式添加
    
            // this.DropDownList1.Items.Insert(0, new ListItem("请选择...", "-1")); 
    
        }
    
    
    
        protected void Button1_Click(object sender, EventArgs e)
    
        {
    
            this.DropDownList1.SelectedIndex = 0;
    
        }
    
        
    
    </script>
    
    
    
    <!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>DropDownList 添加默认项及恢复默认设置</title>
    
    </head>
    
    <body>
    
        <form id="form1" runat="server">
    
            <asp:DropDownList ID="DropDownList1" runat="server" />
    
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="恢复默认" />
    
        </form>
    
    </body>
    
    </html>
    
    
    
    

    知识改变命运,奋斗成就人生!

    我按照您的方法,调试了一下,符合我的意思,但我觉得把this.DropDownList1.Items.Insert(0, new ListItem("请选择...", "-1"));这段代码放在Page_load中是不合试,因为那样会出现多个请选择,所以我把它放到btnReset_Click中,刚好符合!
    谢谢您了! 
      
    2010年2月4日 5:18