小弟我刚刚接触ASP.NET几天,实在惭愧,很多东西犹如天书一般,根本看不懂。还在摸黑探索中。
下面是我的问题,希望大侠们能帮助我。页面内放入两个DropDownList,并且都是绑定了各自的数据库表,两个DropDownList之间做了联动。(这三项已经完成了)问题来了:
一、因为DropDownList绑定了数据库,所以打开页面的时候,默认是数据库表内的第一个值,这个是我不愿意看到的。我也搜索过论坛里相关的帖子,有这么一句话,很多回帖都是这样的:
DropDownList1.Items.Insert(0, New ListItem("", "-1"))
我试过,在Page_Load中写入并测试,第一个选项的确是空白,但是好像每次选择,空白项就多一行。如图:
二、我想通过两个DropDownList的选择,最终以这两个DropDownList的选择值作为数据库查询的条件。这个,我在用GridView的时候已经成功了。现在问题是这样,在本页面的下方我放了几个TextBox,我的意愿是以两个DropDownList的选择值作为条件,查询出相应的数据,并赋值给这些TextBox.Text,以满足后面的一些功能需求。
以前,我会用ASP的VBScript语法(就是<%=rs.(x)%>),通过ID赋值给TextBox.Value,并且通过rs写入UPDATE的SQL语法更新数据库,而ASP.NET我就真的不知道怎么写了。以上是我在学习ASP.NET中遇到的问题。我确实查过资料了,一些十分肤浅的问题,我自己解决了。哎,只怪自己太笨。恳请各位大侠能帮助小弟一把。使用语言:VB
开发环境:Windows XP Pro SP2
开发工具:Visual Studio 2005
编译环境:Windows 2003 Server + IIS 6.0 + SQL 2005

解决方案 »

  1.   

    在page_load里加上
    if(!IsPostBack)
    {
    DropDownList1.Items.Insert(0, New ListItem("", "-1"))
    }
      

  2.   

            if (!Page.IsPostBack)
            {
    DropDownList1.Items.Insert(0, New ListItem("", "-1")) ;
            }
      

  3.   

    1.应该是你每次绑定时,没有清掉原来的项 绑定前先dropdownlist.item.clear()
    2. textbox.text=dropdownlist.selectedvalue
      

  4.   

    ddlst.selectindex=ddlst.items.indexof(ddlst.items.findbytext("请选择"));
    好象这么搞,很久没用了忘了
      

  5.   

      void DataBindDropList()
        {
            string sql = "select distinct area from maininfo";
            DataTable dt = dbo.GetDataTable(sql);
            if (dt.Rows.Count != 0)
            {
               
                this.DropDownList1.DataSource = dt;
                this.DropDownList1.DataTextField = "area";
                this.DropDownList1.DataValueField = "area";
                this.DropDownList1.DataBind();
                ListItem items = new ListItem("查看所有", "查看所有");
                this.DropDownList1.Items.Add(items);
                this.DropDownList1.SelectedIndex = dt.Rows.Count;
            }
        }取值:this.DropDownList1.SelectedValueLZ没说清楚要求,既然值都绑定了,就可以直接取DropDownList的值啊`并且AutoPostBack="True"
      

  6.   

    DropDownList1.Items.Insert(0, new ListItem("<-- 请选择 -->", "0")); 
      

  7.   

    绑定表后在下面加DropDownList1.Items.Insert(0, new ListItem(" 请选择", "-1")); 
      

  8.   

    1一楼的说法正确啊   在用IF(!ISPOSTBACK) 控制一下 这样下次刷新页面的时候 DropDownList1.Items.Insert(0, New ListItem("", "-1")) 这句就不会重复执行了。ISPOSTBACK 是个系统自带的值(新手哈,名词用的不正确请纠正。),判断是不是第一次刷新页面,!ISPOSTBACK 就是第一次是true  然后就是false 了 按理说这句话不需要啥引用不会出错啊 放 pageonload()  那个方法理了么 ?
      

  9.   

    关键是,我用的是VB语法,可楼上几个大侠都是用C#给我的答案,我看得无从下手。
    哎~~~蹲墙角哭会儿去。
      

  10.   

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            If Not IsPostBack Then
                DropDownList1.Items.Insert(0, New ListItem("----", ""))
            End If
        End SubVB的语法,这样对不对?