限定控件长度,动态绑定数据源
由于数据源字符串的长度有长有短
当长度超过了定长的时候,鼠标浮动过去的话。
在鼠标的下方显示一个标签,在标签中显示完整的内容。dropdownlist的item不相应monseover事件。请问如何实现这个自定义控件?

解决方案 »

  1.   


    如果我没有记错的话 ListItem 是标记为sealed
      

  2.   

    控件从UserControl中派生,使用DropDownlist的一个实例
      

  3.   

    //****封将downdroplist控件代码
        public static void DIIDrpListBind(ref DropDownList drpList, ref DataSet DSet, string DataFiledText,string DataFiledValue, bool IsAppotion, bool IsTtitle,bool IsChoices)
        {
            drpList.Items.Clear();
            if (IsChoices == true)
            {
                drpList.Items.Add("请选择");
            }        foreach (DataRow dRow in DSet.Tables[0].Rows)
            {
                ListItem LItem ;
                if (IsAppotion == true)
                {
                    string strTemp = dRow[DataFiledText].ToString();
                    string strTempA = "";
                    if (strTemp.Length > 20)
                    {
                        strTempA = strTemp.Substring(0, 10);
                    }
                    else
                    {
                        strTempA = strTemp;
                    }
                    LItem = new ListItem(strTempA, dRow[DataFiledValue].ToString());
                }
                else
                {
                    LItem = new ListItem(dRow[DataFiledText].ToString(), dRow[DataFiledValue].ToString());
                }
                drpList.Items.Add(LItem);
            }        //****显示加title提示
            if (IsTtitle == true)
            {
                foreach (ListItem LItem in drpList.Items)
                {
                    LItem.Attributes.Add("title", DSet.Tables[0].Rows[0][DataFiledText].ToString());
                }
            }    }
      

  4.   

    看到别人这样写的:protected override void Render(HtmlTextWriter writer)
        {
           
            DropDownList1.Items.Add("12345");
            DropDownList1.Items.Add("67890");
            DropDownList1.Items.Add("123456789");
            foreach (ListItem LItem in DropDownList1.Items)
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Title, "fish");
            }
            base.Render(writer);
        }
    可是还是没有提示啊。。
    顶下