this.name.SelectedItem.Selected = false;
       string tlmbk = row["name"].ToString();
       for (int i = 0; i < this.name.Items.Count; i++)
        
           if (this.name.Items[i].Value == tlmbk)
         {
                this.name .Items[i].Selected = true;
                   break;
           }
      }
为什么报 this.ggw.SelectedItem.Selected = false;错 说没用NEW创建对象
但把this.ggw.SelectedItem.Selected = false去掉 不报错 但值赋不过去 
这问题怎么解决啊 谢谢

解决方案 »

  1.   

    this.name.SelectedItem.Selected = false
    写这个做什么?
      

  2.   

    this.name.SelectedItem.Selected = false
    莫明奇妙
    this.name.SelectedItem.Selected是变量?
      

  3.   

    string tlmbk = row["name"].ToString();
           for (int i = 0; i < this.name.Items.Count; i++)
            
               if (this.name.Items[i].Value == tlmbk)
             {
                    this.name .Items[i].Selected = true;
                       break;
               }
          }
    为什么赋值不到给name这个DROPDOWNLIST
      

  4.   

    this.name.items.findbytext(tlmbk).select=true;
      

  5.   

    String sql = ".....";
            DataSet myDs = my.GetDataset(sql);
            DataRow row = myDs.Tables[0].Rows[0];
            title.Text = row["title"].ToString();
            string tlmbk = row["name"].ToString();
           for (int i = 0; i < this.name.Items.Count; i++)
            
               if (this.name.Items[i].Value == tlmbk)
             {
                    this.name .Items[i].Selected = true;
                       break;
               }
          }
    title.Text这个文本框能赋值过去, 但name这个下拉列表不能赋值过去 怎么回事啊
      

  6.   

    this.name.items.findbytext(tlmbk).select=true;
     还是值赋不过去
      

  7.   

    String sql = ".....";
            DataSet myDs = my.GetDataset(sql);
            DataRow row = myDs.Tables[0].Rows[0];
            title.Text = row["title"].ToString();
            string tlmbk = row["name"].ToString();               this.name.items.findbytext(tlmbk).select=true;name应该是一个dropdownlist吧,这样应该可以的。
      

  8.   

    如果是dropdownlist,你可以直接给ddl.SelectedValue=tlmbk来做啊
      

  9.   

    this.name.items.findbytext(tlmbk).select=true;
    如果是上面这语句的话他就报
    未将对象引用设置到对象的实例。
      

  10.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using DataBase;public partial class Editadv : System.Web.UI.Page
    {
        protected dataBase my = new dataBase();
        protected DataSet myDs = new DataSet();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Displaylist();
                namebind();
            }
        }
        protected void namebind()
        {
            String sqlStr = "select * from Tname";
            DataSet myDs = my.GetDataset(sqlStr);
            name.DataSource = myDs.Tables[0];
            name.DataTextField = "name";
            name.DataValueField = "id";
            name.DataBind();
        }
        protected void Displaylist()
        {    
            string ID = Request["advid"].ToString();
            String sql = " "
            DataSet myDs = my.GetDataset(sql);
            DataRow row = myDs.Tables[0].Rows[0];
            title.Text = row["title"].ToString();
            this.name.SelectedItem.Selected = false;
            string tlmbk = row["name"].ToString();
            //Response.Write(tlmbk);
            for (int i = 0; i < this.name.Items.Count; i++)
            {
                if (this.name.Items[i].Value == tlmbk)
                {
                    this.name.Items.FindByText(tlmbk).Selected = true;
                    break;
                }
            }}
    全部代码都在了
    title.Text这个文本框能赋值过去, 但name这个下拉列表不能赋值过去
      

  11.   

    this.name.SelectedItem.Selected = false;你是说这句话无法执行么?
      

  12.   

    this.name.SelectedItem.Selected = false;
    这句报未将对象引用设置到对象的实例。
    这句是取消取消下拉框的默认选项
    但去掉这句 虽然不报错 但还是赋不了值过去 我郁闷
      

  13.   

    加上这句没必要,下拉框总得显示东西,如果你要不让他显示的话,可以插入insert(0,new listitem());
    其次赋值不过去是报错还是执行后没效果?
      

  14.   

    你看了我上面的代码了吗? 我的下拉列表同时是绑定数据库的
    如果我不加this.name.SelectedItem.Selected = false; 他就显示绑定的的哪个 不是接受要赋值的哪个了
      

  15.   

    其实这语句不知道为什么赋不了值过去 我把
      for (int i = 0; i < this.name.Items.Count; i++)
            {
                if (this.name.Items[i].Value == tlmbk)
                {
                    this.name.Items.FindByText(tlmbk).Selected = true;
                    break;
                }
    换成
        String sqle = "select id,name from Tlmbk where id="+ID;        DataSet ddl = my.GetDataset(sqle);
            lmbk.DataSource = ddl.Tables[0];
       
            lmbk.DataTextField = "name";
            lmbk.DataValueField = "id";
            lmbk.DataBind(); 就能赋值过去
      

  16.   

    既然如此你可以用insert语句来插入一个空白的项目,使用select=false不太合理
    你所谓的赋值不过去到底是报错还是没效果了?
      

  17.   

    if (!IsPostBack)
            {
                Displaylist();
                namebind();
            }
    你看你写的这个,首先就进行赋值,然后查询数据库进行绑定,当然没效果
      

  18.   

    if (!IsPostBack)
            {
                Displaylist();
                namebind();
            }
    换过来也不行啊
      

  19.   

    string tlmbk = row["name"].ToString();---这个是name
    name.DataTextField = "name";  ---text才是name
            name.DataValueField = "id";if (this.name.Items[i].Value == tlmbk)---可你用的是value来判断
      

  20.   

    我之前是这么写的   protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                lmbkbind();
                DisplayAdvlist();
            }
        }
        protected void lmbkbind()
        { 
        }
        protected void DisplayAdvlist()
        {
            string ID = Request["advid"].ToString();
            String sql = "select id,name,title from table where id=" +ID;
            DataSet myDs = my.GetDataset(sql);
            DataRow row = myDs.Tables[0].Rows[0];
            title.Text = row["title"].ToString();
            string tlmbk = row["name"].ToString();
            for (int i = 0; i < this.lmbk.Items.Count; i++)
            {
                if (this.lmbk.Items[i].Value == tlmbk)
                {
                    this.lmbk.Items[i].Selected = true;
                    break;
                }
            }
    没有效果 
    现在我是这么写的
      protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                lmbkbind();
                DisplayAdvlist();
            }
        }
        protected void lmbkbind()
        { 
        }
        protected void DisplayAdvlist()
        {
            string ID = Request["advid"].ToString();
            String sql = "select Tadv.id,url, title,advtype,lmbk,sxpl,text,re,Tlmbk.id, name from Tadv inner join Tlmbk on Tadv.lmbk=Tlmbk.id where Tadv.id=" +ID;
            DataSet myDs = my.GetDataset(sql);
            DataRow row = myDs.Tables[0].Rows[0];
            title.Text = row["title"].ToString();
            String sqle = "select id,name from Tlmbk where id="+ID;
            DataSet ddl = my.GetDataset(sqle);
            lmbk.DataSource = ddl.Tables[0];
            lmbk.DataTextField = "name";
            lmbk.DataValueField = "id";
            lmbk.DataBind();
    也没效果 但如果把
    if (!IsPostBack)
            {
                lmbkbind();
                DisplayAdvlist();
            }变成
    if (!IsPostBack)
            {
     
                DisplayAdvlist();
            }
    这个才有效果
      

  21.   

    接了 谢谢大家 特别是jimu8130
      

  22.   

    解决了 谢谢大家 特别是jimu8130