<asp:UpdatePanel ID="UpdatePanel1" runat="server">
         <ContentTemplate>
             <dl>
                <dt>企业:</dt>
                <dd>
                    <asp:DropDownList ID="ddlCompany" runat="server" AutoPostBack="True" 
                        onselectedindexchanged="ddlCompany_SelectedIndexChanged">
                        <asp:ListItem Value="-1">请选择</asp:ListItem>
                    </asp:DropDownList>
                </dd>
            </dl>
            <dl>
                <dt>线路:</dt>
                <dd>
                    <asp:DropDownList ID="ddlLine" runat="server">
                        <asp:ListItem Value="-1">请选择</asp:ListItem>
                    </asp:DropDownList>
                </dd>
            </dl>
            </ContentTemplate>
         </asp:UpdatePanel>
 if (!IsPostBack)
        {
            InitOrganization(this.ddlCompany);         }  public void InitOrganization(DropDownList ddlCompany)
    {
        IList<OrganizationEntity> orgList=GetOrgByType("企业");
        ddlCompany.DataSource = orgList;
        ddlCompany.DataTextField = "Short"; //绑定的是简写
        ddlCompany.DataValueField = "OrganizationId";
        ddlCompany.DataBind();
        for (int i = 0; i < orgList.Count; i++)
        {
            ddlCompany.Items[i].Attributes.Add("title", orgList[i].Name); //title出来的是全写
        }
        ddlCompany.Items.Insert(0, new ListItem("请选择", "-1")); 
    }但是联动的时候title消失了,没办法,我只能重新在联动那里在加一次//联动
  protected void ddlCompany_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlCompany.SelectedValue != "-1")
        {
            int companyId = Convert.ToInt32(ddlCompany.SelectedValue);
            ddlLine.DataSource =GetListByOrgId(companyId);
            ddlLine.DataTextField = "Name";
            ddlLine.DataValueField = "LineId";
            ddlLine.DataBind();
            ddlLine.Items.Insert(0, new ListItem("请选择", "-1"));
            IList<OrganizationEntity> orgList=GetOrgByType("企业");
            for (int i = 0; i < orgList.Count; i++)
            {
                ddlCompany.Items[i + 1].Attributes.Add("title", orgList[i].Name);
            }
        }
        else
        {
            ddlLine.Items.Clear();
            ddlLine.Items.Insert(0, new ListItem("请选择", "-1"));
        }    }
但是我查询数据,页面刷新了,title属性又没了

解决方案 »

  1.   

    如果方法写在外面的话应该怎么改啊..最好页面不需要改,改页面就改的太多了,改方法就少一些
    InitOrganization(this.ddlCompany); 
    if (!IsPostBack)
            {
                        }
      

  2.   

      protected void PreRender(object sender, EventArgs e){
       你写在这里看行不
    }
      

  3.   

    方法写在外面没次刷新的时候 都要用ViewState或者Session记录Dropdownlist的选择索引如果不为空就给他赋上去 保存索引值就可以了。
      

  4.   

    IList<OrganizationEntity> orgList=GetOrgByType("企业");
            ddlCompany.DataSource = orgList;
            ddlCompany.DataTextField = "Short"; //绑定的是简写
            ddlCompany.DataValueField = "OrganizationId";
            ddlCompany.DataBind();
            for (int i = 0; i < orgList.Count; i++)
            {
                ddlCompany.Items[i].Attributes.Add("title", orgList[i].Name); //title出来的是全写
            }
            ddlCompany.Items.Insert(0, new ListItem("请选择", "-1")); 
      

  5.   

     protected override void EnsureChildControls()
            {
                IList<OrganizationEntity> orgList=GetOrgByType("企业");
            ddlCompany.DataSource = orgList;
            ddlCompany.DataTextField = "Short"; //绑定的是简写
            ddlCompany.DataValueField = "OrganizationId";
            ddlCompany.DataBind();
            for (int i = 0; i < orgList.Count; i++)
            {
                ddlCompany.Items[i].Attributes.Add("title", orgList[i].Name); //title出来的是全写
            }
            ddlCompany.Items.Insert(0, new ListItem("请选择", "-1"));         }
      

  6.   

    if (!IsPostBack)
            {
               在这里试下          }
      

  7.   

    5楼这个是写在哪里啊,那我以前那个 InitOrganization(this.ddlCompany); 还要不
      

  8.   

    这样试试
    if (!IsPostBack)
    {
         InitOrganization(this.ddlCompany); 
    }
    public void InitOrganization(DropDownList ddlCompany)
    {
         IList<OrganizationEntity> orgList=GetOrgByType("企业");
         ddlCompany.DataSource = orgList;
         ddlCompany.DataTextField = "Short"; //绑定的是简写
          ddlCompany.DataValueField = "OrganizationId";
         ddlCompany.DataBind();
    }
    protected override void EnsureChildControls()
    {
          for (int i = 0; i < ddlCompany.Items.Count; i++)
          {
              ddlCompany.Items[i].Attributes.Add("title", ddlCompany.Items[i].Text); //title出来的是全写
           }
          ddlCompany.Items.Insert(0, new ListItem("请选择", "-1")); 
    }
      

  9.   


    protected override void EnsureChildControls() //很多控件都调用了这个方法,执行了好多次哦
    {
          for (int i = 0; i < ddlCompany.Items.Count; i++)
          {
              ddlCompany.Items[i].Attributes.Add("title", ddlCompany.Items[i].Text); //title出来的是全写 ,这样不行的,我的title不是它的Text,Text是简写的,title才是全称,这样的话,又要查询数据库一次了,已经解决了,还是谢谢你
           }
          ddlCompany.Items.Insert(0, new ListItem("请选择", "-1")); 
    }