当前位置:编程学习 > C#/ASP.NET >>

在dropdownlist绑定了数据源之后,如何让dropdownlist显示时是“请选择”

<asp:DropDownList ID="xw_dl1" runat="server" DataSourceID="SqlDataSource1"  DataTextField="jsname" DataValueField="jsname"  >
就只是这样。我希望进入页面之后不是直接显示jsname,而是显示“请选择”。


在后台代码中,这样子做无效。。
xw_dl1.DataBind(); 
xw_dl1.Items.Insert(0, "请选择XXX "); 

也在页面设计中直接添加了<asp:ListItem Selected="True">--请选择--</asp:ListItem>
也还是无效。
请教各位高手、我应该怎么做?

--------------------编程问答-------------------- xw_dl1.DataBind();  
xw_dl1.Items.Insert(0, "请选择XXX ");  
xw_dl1.SelectedIndex=0; --------------------编程问答-------------------- ListItem list = new ListItem();
        list.Value = "默认";
        list.Text = "--请选择--";
        ddl.Items.Add(list);
        ddl.SelectedValue = "默认"; --------------------编程问答--------------------
引用 1 楼 yuanruiji 的回复:
xw_dl1.DataBind();  
xw_dl1.Items.Insert(0, "请选择XXX ");  
xw_dl1.SelectedIndex=0;

你好、我刚刚试了一下、但是这个值会直接传到下一个页面去。另一个页面的lable值变成了 ==请选择== 
请问你还有什么高招吗? --------------------编程问答--------------------
引用 2 楼 long332949572 的回复:
ListItem list = new ListItem();
        list.Value = "默认";
        list.Text = "--请选择--";
        ddl.Items.Add(list);
        ddl.SelectedValue = "默认";

亲、我试了、编译有错误哦。
System.ArgumentOutOfRangeException: “xw_dl1”有一个无效 SelectedValue,因为它不在项目列表中。
参数名: value --------------------编程问答--------------------
引用 3 楼 xie_jin07 的回复:
引用 1 楼 yuanruiji 的回复:

xw_dl1.DataBind();
xw_dl1.Items.Insert(0, "请选择XXX ");
xw_dl1.SelectedIndex=0;

你好、我刚刚试了一下、但是这个值会直接传到下一个页面去。另一个页面的lable值变成了 ==请选择== 
请问你还有什么高招吗?

不是很明白你的整体代码是怎么写的? --------------------编程问答--------------------
引用 3 楼 xie_jin07 的回复:
引用 1 楼 yuanruiji 的回复:

xw_dl1.DataBind();
xw_dl1.Items.Insert(0, "请选择XXX ");
xw_dl1.SelectedIndex=0;

你好、我刚刚试了一下、但是这个值会直接传到下一个页面去。另一个页面的lable值变成了 ==请选择== 
请问你还有什么高招吗?


在后台代码里、有个定义的 Session["xw_dl1"] = xw_dl1.SelectedValue.Trim();
将他的值传到另一个页面。
另一个页面接收数据:  xw2_jsnamelbl2.Text = Convert .ToString (Session ["xw_dl1"]); --------------------编程问答--------------------
引用 6 楼 xie_jin07 的回复:
引用 3 楼 xie_jin07 的回复:

引用 1 楼 yuanruiji 的回复:

xw_dl1.DataBind();
xw_dl1.Items.Insert(0, "请选择XXX ");
xw_dl1.SelectedIndex=0;

你好、我刚刚试了一下、但是这个值会直接传到下一个页面去。另一个页面的lable值变成了 ==请选择==
请问你还有什么高招吗?

……

如果期望在另一个页面不显示“==请选择== ”的话,可以这样添加
xw_dl1.DataBind();
ListItem list = new ListItem();
list.Value = string.Empty;
list.Text = "--请选择--";
xw_dl1.Items.Insert(0,list);
xw_dl1.SelectedIndex=0;
这样另一个页面显示出来应该是空字符串,不知道你是不是想这样 --------------------编程问答--------------------
引用 1 楼 yuanruiji 的回复:
xw_dl1.DataBind();  
xw_dl1.Items.Insert(0, "请选择XXX ");  
xw_dl1.SelectedIndex=0;

+1 --------------------编程问答--------------------
引用 7 楼 yuanruiji 的回复:
引用 6 楼 xie_jin07 的回复:
引用 3 楼 xie_jin07 的回复:

引用 1 楼 yuanruiji 的回复:

xw_dl1.DataBind();
xw_dl1.Items.Insert(0, "请选择XXX ");
xw_dl1.SelectedIndex=0;

你好、我刚刚试了一下、但是这个值会直接传到下一个页面去。另一个页面的lable值变成了……


不是的、我是选了值进去的、选了一个老师名字、不过那个老师是因为没有评价、所以会有一个gridview显示没有任何数据。但是我想要在另一个页面也显示我选中的那个老师的名字。 --------------------编程问答--------------------
引用 9 楼 xie_jin07 的回复:
引用 7 楼 yuanruiji 的回复:

引用 6 楼 xie_jin07 的回复:
引用 3 楼 xie_jin07 的回复:

引用 1 楼 yuanruiji 的回复:

xw_dl1.DataBind();
xw_dl1.Items.Insert(0, "请选择XXX ");
xw_dl1.SelectedIndex=0;

你好、我刚刚试了一下、但是这个值会直……

而且刚刚那个代码、在第二个页面的gridview里的数据全都没有了。那个gridview是根据传进来的xw_dl1绑定了的。现在之前有数据的那些教师都变没有任何数据了。 --------------------编程问答--------------------
引用 1 楼 yuanruiji 的回复:
xw_dl1.DataBind();  
xw_dl1.Items.Insert(0, "请选择XXX ");  
xw_dl1.SelectedIndex=0;


这个是第一个页面的后台代码:
 protected void Page_Load(object sender, EventArgs e)
    {
        
        if (Session["xwid"] != null)
        {
            
            SqlDataReader dr;

            SqlCommand cm1 = MyClass.myclass.GetCommand("select bjid from Login_xw where xwid='" + Session["xwid"] + "'");
            cm1.Connection.Open();

            dr = cm1.ExecuteReader();
            if (dr.Read())
            {
                xw_bjidlbl2.Text = dr["bjid"].ToString();

                SqlDataReader dr2;
                SqlCommand cm2 = MyClass.myclass.GetCommand("select jsname,kcname,ksid,sksj,kcjs from kcb_js_kcap where bjid='" + dr["bjid"] + "'");
                cm2.Connection.Open();


                dr2 = cm2.ExecuteReader();
                xw_GridView1.DataSource = dr2;
                xw_GridView1.DataBind();
                xw_dl1.DataBind();
            }

        }
        Session["xw_dl1"] = xw_dl1.SelectedValue.Trim();

    }


通过第一个页面的button控件直接进入下一个页面。
这个是第二个页面的后台代码:
 protected void Page_Load(object sender, EventArgs e)
    {
        //显示学期
        DateTime dt1 = DateTime.Now;
        DateTime dt2 = Convert.ToDateTime("2011-08-15 00:00:00");
        DateTime dt3 = Convert.ToDateTime("2012-08-15 00:00:00");
        if (dt1 > dt2 && dt1 < dt3)
        {
            string y = DateTime.Now.Date.Month.ToString();
            int yy = Convert.ToInt32(y);
            if (yy > 8 || yy < 3)
            {
                int xqid = 1;
                xw2_xqidlb2.Text = Convert.ToString(xqid);
            }
            else
            {
                int xqid = 2;
                xw2_xqidlb2.Text = Convert.ToString(xqid);
            }
        }

        //显示教师姓名
        xw2_jsnamelbl2.Text = Convert .ToString (Session ["xw_dl1"]);
 
        //显示班级编号
        SqlDataReader dr;

        SqlCommand cm1 = MyClass.myclass.GetCommand("select bjid from Login_xw where xwid='" + Session["xwid"] + "'");
        cm1.Connection.Open();

        dr = cm1.ExecuteReader();
        if (dr.Read())
        {
            xw2_bjidlbl2.Text = dr["bjid"].ToString();

            SqlDataReader dr2;
            SqlCommand cm2 = MyClass.myclass.GetCommand("select jsname,kcname,sksj,jsff,skxg,tkxg,xsdkl,jxjd ,qtsm from jspj join jsxx on jspj.jsid=jsxx.jsid join kcxx on jspj.kcid=kcxx.kcid where jspj.jsid in(select jsxx.jsid from jsxx where jsname='" + Session["xw_dl1"] + "')and pjid in(select pjid from kcap where bjid='" + dr["bjid"] + "')  and  kcxx.kcid in(select kcid from kcxx where xqid='" + xw2_xqidlb2.Text + "' )");
            cm2.Connection.Open();


            dr2 = cm2.ExecuteReader();
            xw2_GridView1.DataSource = dr2;
            xw2_GridView1.DataBind();
        }

        
    }
--------------------编程问答-------------------- 先绑定
然后
ID.Items.Insert(0, “你想输的文字");   
--------------------编程问答-------------------- 这个是老问题了。http://topic.csdn.net/u/20111103/14/373b7734-b56d-422f-a819-bc6f1448c512.html

为你的DropDownList控件添加DataBound事件,在这里添加代码。

protected   void   xw_dl1_DataBound(object   sender,   EventArgs   e)
{
       xw_dl1.Items.Insert(0, "---请选择---");  
}
--------------------编程问答--------------------

lst.Insert(0, new ListItem("--请选择--", "-1"));
--------------------编程问答--------------------
引用 1 楼 yuanruiji 的回复:
xw_dl1.DataBind();  
xw_dl1.Items.Insert(0, "请选择XXX ");  
xw_dl1.SelectedIndex=0;


xw_dl1.DataBind();  //数据再次绑定
xw_dl1.Items.Insert(0, "请选择XXX ");  //绑定之后在追加一个项
xw_dl1.SelectedIndex=0;//这个项的索引位置是0 ,也就是排在最上面 --------------------编程问答--------------------
引用 1 楼 yuanruiji 的回复:
xw_dl1.DataBind();  
xw_dl1.Items.Insert(0, "请选择XXX ");  
xw_dl1.SelectedIndex=0;



xw_dl1.DataBind();  //数据再次绑定
xw_dl1.Items.Insert(0, "请选择XXX ");  //绑定之后在追加一个项
xw_dl1.SelectedIndex=0;//这个项的索引位置是0 ,也就是排在最上面
--------------------编程问答--------------------
引用 13 楼 taomanman 的回复:
这个是老问题了。http://topic.csdn.net/u/20111103/14/373b7734-b56d-422f-a819-bc6f1448c512.html

为你的DropDownList控件添加DataBound事件,在这里添加代码。

C# code

protected   void   xw_dl1_DataBound(object   sender,   Ev……


+1
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,